且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

apache反向代理

更新时间:2022-09-21 23:21:30

这里的反向代理也即《Apache HTTP Server 与 Tomcat 的三种连接方式介绍》中所指的第三种连接方式http_proxy,Apache 自带的 mod_proxy 模块使用代理技术来连接 Tomcat。

这种反向代理功能,即用户端浏览器不需要把代理服务器改成这里的 Apache 地址

修改D:/Program Files/Apache Software Foundation/Apache2.2/conf/httpd.conf配置很简单

1.先去掉下面两行的注释

LoadModule proxy_module modules/mod_proxy.so

LoadModule proxy_http_module modules/mod_proxy_http.so

 

2.然后在最后增加

ProxyPass /images !
ProxyPass /css !
ProxyPass /js !
ProxyPass /
http://localhost:8080/这个也可以写为:

ProxyPass         /oa    http://localhost:8080/oa
ProxyPassReverse  /oa    http://localhost:8080/oa

也可以连续增加以上两行,就是多个tomcat启动

ProxyPass /meb http://192.168.6.103:8081/meb
ProxyPassReverse /meb http://192.168.6.103:8081/meb

……

ProxyPassProxyPassReverse 这两个配置时,如果不加ProxyPassReverse 这行,则IE地址栏里面显示就是tomcat所对就的地址,如http://localhost/oa/后则地址栏里面显示的就是http://localhost:8080/oa/,反之,加上ProxyPassReverse这行,则显示的就是apache的地址,把原tomcat给隐藏了

 

在这个配置中,我们把所有 http://localhost 的请求代理到 http://localhost:8080/ ,这也就是 Tomcat 的访问地址,除了 images、css、js 几个目录除外。

 

目前最新版的 Apache 自带的 cache ,只能配置成 server 或者 virtual host 一级的,没有办法配置到 URL 一级。好在一般的 J2EE 应用性能问题,一般都在动态网页部分,静态网页很好,因此也没有太大关系。

对于要求比较高的应用,比如用户量多的新闻网站或者论坛网站,如果要求是用 Apache 缓冲后台的动态网页,比如说,我的首页可以允许缓存一分钟,则在这一分钟内,比如有两千次用户访问 http://localhost:8080/oa,只有第一次用户访问,Apache 会把请求转发到 Tomcat,其余的 999 次访问,都是由 Apache 从缓冲中取出这个页面返回给用户看。这样后台的动态网页服务器的负荷会小很多。以目前的 Apache 最新版本来说,使用反向代理达不到这个要求,应该使用 Apaceh 新建一个 virtual host ,换成使用 URL rewrite。这与题目无关,就此打住。