用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
分享到:
相关推荐
suse系统完整配置apache集群实例,包括安装介质下载,操作系统参数调整,apache-httpd程序编译,tomcat-connectors编译,负载均衡设置,memcached实现session赋值,tomcat优化,apache-httpd优化,调测问答。
这个软件就是通过apache反向代理方式实现效果,项目使用tomcat发布,apache代理服务至tomcat,这里tomcat的配置就列出来了
linux apache反向代理配置,写的有点乱,但是可以用,里面有说明文档 先弄 apache和tomcat整合 把80端口给apache ...在apache的httpd.conf里写反向代理,用户名指向tomcat的端口,具体配置看这个文件夹里的配置文件
而在一个繁忙的网站上这一连接数量也许不能满足需要,特别是本文介绍的通过防火墙上的Apache反向代理允许外部用户访问多个内部Web服务器的情况,可以采用更改src/include/httpd.h文件的方法,具体步骤如下。...
使用Nginx实现Web反向代理功能,实现如下功能: ●后端Web服务器两台,可以使用httpd实现 ●Nginx采用轮询的方式调用后端Web服务器 ●两台Web服务器的权重要求设置为不同的值 ●最大失败次数为1,失败超时时间为30秒
[已移动] https://github.com/tamacat-1-4 tamacat-httpd是一种开源Java Web Server软件,由Apache HttpComponents提供支持。 这是一个可定制的 HTTP/HTTPS 服务器框架和反向代理。
反向代理是什么? 大家去过落伍者吧?大家可以通过IP查看落伍的IP是在韩国,大家可知道,其实落伍的数据还是在国内。如何做到这样的呢,这就叫反向代理,在韩国的服务器将http请求发送到国内服务器的某个http端口,...
ive lean httpd是Windows下的绿色Nginx Mysql PHP netbox环境集成套件包,Nginx [engine x]是俄罗斯人Igor Sysoev编写的一款高性能的HTTP和反向代理服务器。Nginx已经在俄罗斯最大的门户网站——Rambler Media...
nginx 是一个小巧且高效的HTTP服务器,也可以做一个高效的负载均衡反向代理,通过它接受用户的请求并分发到多个Mongrel进程可以极大提高Rails应用的并发能力tomcat 技术先进、性能稳定,而且免费IIS(windows)安全...
Apache配置反向代理,负责均衡,SSL必备中间件。It开发人员必知必会的东西,压缩包中包含安装包,教你部署以及认识负载均衡以及反向代理的doc文档。
它使用通信通道将来自反向代理服务器的请求转发到一组应用程序服务器节点之一。 与 mod_jk 和 mod_proxy 不同,mod_cluster 利用应用服务器节点和反向代理之间的附加连接将服务器端负载平衡因素和生命周期事件传输回...
Ansible-Playbook配置反向代理Haproxy-Loadbalancer和httpd服务器每当新的受管节点(使用Apache Webserver配置)加入清单时,使用Ansible剧本来配置反向代理(即Haproxy)并自动更新其配置文件。
Ansible-Playbook配置反向代理Haproxy负载平衡器和httpd服务器在AWS实例上 每当新的受管节点(使用Apache Webserver配置)加入清单时,使用Ansible剧本来配置反向代理(即Haproxy)并自动更新其配置文件。 使用那里...
PostgreSQL巴西用户组的环境具有Apache HTTPD的反向代理,并且Postfix直接在托管的服务器中公开。 建造 $git clone git@github.com:fike/pgbr-mailman.git pgbr-mailman 在构建pgbr-mailman容器之前,您需要创建...
apache mod_rpaf模块,获取反响代理真实IP,再也不用担心apache被反向代理获取不到真实IP了。爽歪歪
您可能感兴趣的文章:Apache虚拟目录配置及vue-cli反向代理的设置方法Apache配置虚拟目录和多主机头的方法PHP编程之设置apache虚拟目录解析在apache里面给php写虚拟目录的详细方法Apache 添加虚拟目录注
]推荐:在反向代理服务器上使用此防火墙脚本阻止所有流向您的主(上游)服务器的流量,但来自反向代理的流量除外,请使用多个反向代理实施DNS轮询以减少DDoS负载,请先与ISP联系以升级服务器的带宽,RAM,CPU,
apache+tomcat方向代理使用的工具,实测apache2.2可以使用,2.4的没试过
但是,此演示使用进行服务发现,并将Apache httpd用作反向代理,以将调用路由到服务,并用作负载平衡器。 该项目在Docker容器中创建了一个完整的微服务演示系统。这些服务使用Spring和Spring Cloud在Java中实现。 它...