用httpd可以实现反向代理Reverse Proxy
官网的说明:
httpd also allows you to bring remote documents into the URL space of the local server. This technique is called reverse proxying because the web server acts like a proxy server by fetching the documents from a remote server and returning them to the client. It is different from normal (forward) proxying because, to the client, it appears the documents originate at the reverse proxy server.
实际配置也比较简单
先要加载一大堆跟proxy相关的module,因为我还没研究module,也不知道哪个是,就把看得像的都开了
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_connect_module modules/mod_proxy_connect.so
LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so
LoadModule proxy_scgi_module modules/mod_proxy_scgi.so
LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
LoadModule proxy_express_module modules/mod_proxy_express.so
LoadModule slotmem_shm_module modules/mod_slotmem_shm.so
最后一个不load会报错,是在httpd/logs/error_log里发现的。应该是某一个module依赖了它。但是我只是为了测试,用到最简单的跳转功能,应该是不需要开这么多的,后面再仔细研究下,现在先work起来
<IfModule proxy_module>
ProxyPass /wfm/ http://localhost:8080/wfm/
</IfModule>
用directive ProxyPass,把所有匹配/wfm/的请求,都直接转发到后端的tomcat上,后端其实是一个servlet应用,context是wfm
后端有一个HelloWorldServlet
protected void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
PrintWriter writer = response.getWriter();
writer.write("it works by servlet");
writer.flush();
writer.close();
}
直接访问后端的web app也是可以的
但是通过反向代理来访问,应该要用httpd的端口
对于浏览器来说,它并不知道内容实际上是由后端服务器提供的,只会认为自己访问的是httpd server。这就是反向代理名字的由来
在这个例子里,httpd和tomcat在同一台server上,所以没有什么意义。实际上,一般httpd server会放在公网,而tomcat server放在内网(无公网IP),所以用户是不能直接访问到tomcat server的,对安全很有好处
如果换一个路径,比如http://localhost/wfm1/,httpd就不会做跳转了,会在本机的file system里找
通过这个最简单的示例,实现了基本的反向代理,不过要注意以下几点:
1、除了ProxyPass,还有相关的其他directive,比如ProxyPassReverse、ProxyPassReverseCookieDomain等,可以实现更复杂的配置,后面要研究一下
2、我感觉这种反向代理,就是简单的HTTP请求转发,应该有更好的方式。比如httpd和tomcat集成,有专门的通信协议AJP,应该会比较好(httpd也提供了proxy_ajp_module,tomcat里也有ajp protocol connector)
3、开发servlet app的时候,一般会有非常多的页面URL跳转,一定要写成相对路径,这样在做反向代理的时候会比较简单。如果跳转路径写死了,跟IP绑定,那么反向代理就没法做了(浏览器会直接访问servlet server,跳过了proxy)。不过这点跟做不做反向代理没有关系,是web app开发的一般原则
- 大小: 17.6 KB
- 大小: 17.2 KB
- 大小: 9.4 KB
分享到:
相关推荐
要配置反向代理,需要在 Apache 服务器的配置文件 `httpd.conf` 中添加以下内容: ``` *:80> ServerName localhost ProxyPass / http://localhost:8088 ProxyPassReverse / http://localhost:8088 ``` 这将将...
### 使用Apache配置反向代理服务器 #### 一、反向代理的基本概念 反向代理(Reverse Proxy)是一种网络架构模式,其中代理服务器接收来自互联网的请求,并将其转发给内部网络中的真实服务器。处理完请求后,代理...
【Apache+SSL安全反向代理配置案例】 ...总结,Apache+SSL安全反向代理配置是一项涉及多个步骤的任务,包括环境准备、软件安装、配置SSL和反向代理设置。理解这些步骤和原理对于管理和维护安全的Web服务至关重要。
### 反向代理负载均衡HAPROXY最佳实践 #### 集群概念与作用 在探讨HAPROXY在反向代理负载均衡中的最佳实践之前,我们首先需要理解集群的基本概念及其作用。集群(Cluster)是一种将多台计算机通过网络连接起来共同...
这个软件就是通过apache反向代理方式实现效果,项目使用tomcat发布,apache代理服务至tomcat,这里tomcat的配置就列出来了
要启用反向代理功能,我们需要在Apache的配置文件`httpd.conf`中进行相应的设置。首先,我们需要确保`mod_proxy`模块已经被加载,可以在配置文件中添加或取消注释以下行: ```apacheconf LoadModule proxy_module ...
linux apache反向代理配置,写的有点乱,但是可以用,里面有说明文档 先弄 apache和tomcat整合 把80端口给apache ...在apache的httpd.conf里写反向代理,用户名指向tomcat的端口,具体配置看这个文件夹里的配置文件
以上就是Apache反向代理WebLogic的基本步骤和关键知识点,通过这种方式,你可以构建一个高效、安全的Web应用架构。在实际部署中,还需要考虑更多的细节,如SSL证书配置、安全策略、性能调优等。
首先,确保Apache已启用`mod_proxy`模块,然后在虚拟主机配置中添加反向代理规则: ```apacheconf *:80> ServerName gateway.com ProxyPass /java http://localhost:8080/ ProxyPassReverse /java ...
反向代理设置涉及到`httpd_accel`部分,这里用于透明代理Apache服务器。设置如下: - `httpd_accel_host`定义虚拟主机名。 - `httpd_accel_port`设置Apache服务器的端口。 - `httpd_accel_with_proxy`启用反向代理...
在Apache服务器中,端口映射和反向代理是两种重要的网络配置技术,它们用于管理和优化网站服务。本文将详细讲解如何在Apache服务器上设置这两种功能。 首先,端口映射(Port Mapping)允许我们将一个特定的外部端口...
使用Squid实现反向代理并且具备内网代理需要进行详细的配置和设置,包括基本控制、性能控制、访问控制、加速器控制和杂项控制等。通过合理的配置和设置,可以充分发挥Squid的性能和功能,提高网站的访问速度和安全性...
### Apache2.4+Tomcat8 反向代理集群配置详解 #### 一、概述 在Windows环境下配置Apache2.4与Tomcat8的反向代理集群,涉及到多个步骤和技术要点,包括Apache与Tomcat的基本安装配置、负载均衡以及Session共享机制...
### Apache反向代理知识点详解 #### 一、测试环境与网络结构 在开始之前,我们需要了解测试环境的具体配置。本文采用的是Redhat Linux 7.2操作系统,搭配Apache 1.3.24版本,假设公司的域名为company.com。网络...
后端服务器通过 HTTPD(Apache)提供 Web 服务,首页文档内容设置为不同的内容,以方便验证反向代理的效果。 **部署后端 Web 服务器** 在两台后端服务器上,使用 `yum` 安装 Apache 并启动服务,同时设置防火墙...
"利用Apache作反向代理"是一个常见的优化策略,它涉及到网络服务的负载均衡和内容分发。这篇博文将深入探讨如何配置Apache HTTP Server作为反向代理,以实现更高效的服务交付。 Apache HTTP Server(通常称为Apache...
【Nginx的反向代理与负载均衡】 在IT领域,Nginx作为一个高性能的HTTP和反向代理服务器,常用于构建高效的Web服务系统。本文将深入探讨Nginx的反向代理和负载均衡功能,以及它们在集群环境中的应用。 1.1 集群是...