更新时间: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
……
ProxyPass、 ProxyPassReverse 这两个配置时,如果不加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。这与题目无关,就此打住。