继吉 发表于 2017-1-5 07:06:26

Apache以http_proxy方式连接Tomcat

  修改Apache服务器安装目录下的配置文件httpd.conf
  首先加载必要的Module:
  LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
LoadModule proxy_balancer_module modules/mod_proxy_balancer.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
   
  添加最简单的跳转:
  ProxyPass /examplehttp://127.0.0.1:7087/example/
   
  这句话就表示当试图请求Apache目录下的example站点时,Aapche就会跳转到Tomcat下的example站点,也就是Apache只起到了一个代理作用。。
   
  这儿也可以添加负载均衡的配置:
  ProxyPass /example balancer://example/
<Proxy balancer://example/>
BalancerMemberhttp://127.0.0.1:7087/example
#BalancerMemberhttp://server3:8080/
</Proxy>
   
  当然Apache连接Tomcat还有其它方式,参考如下:
  http://www.ibm.com/developerworks/cn/opensource/os-lo-apache-tomcat/
  http://tomcat.apache.org/tomcat-6.0-doc/proxy-howto.html
   
  上面用到的都是正向代理,另外更经常用到是反向代理ProxyPassReverse
  设置方法:
  ProxyPass /examplehttp://127.0.0.1:7087/example/
  ProxyPassReverse /examplehttp://127.0.0.1:7087/example/
  正向代理和反向代理的区别:
  http://man.chinaunix.net/newsoft/Apache2.2_chinese_manual/mod/mod_proxy.html
  http://ooxx.me/reverse-proxy.orz
  http://yahoon.blog.iyunv.com/13184/162922/
  如果使用反向代理无法代理成功,查看日志文件显示ap_proxy_connect_backend disabling worker for什么什么的问题,关闭selinux就可以了:
  修改/etc/selinux/config
  SELINUX=disabled
  然后最好重启一下系统就OK了。。
  最近又遇到老版本的Apache没有自动给请求的目录URL添加斜杠的问题,例如请求http://127.0.0.1/abc,不会变成http://127.0.0.1/abc/ 解决方法:
  httpd.conf配置文件添加:
   
  RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^(.+[^/])$ $1/
   
  当然前提是加载rewrite模块:
  LoadModule rewrite_module modules/mod_rewrite.so
  同时要注意的是httpd.conf里面的ServerName一定要写能够正确,因为这儿的rewrite会 根据S erverN ame重写url
页: [1]
查看完整版本: Apache以http_proxy方式连接Tomcat