我用的是apache2.4.23, 連接tomcat使用自帶的 proxy-ajp,需要開啟相關模塊
引用 http://www.server110.com/apache/201404/10273.html :
在Apache2.2之前,一般有兩個組件可選擇。mod_jk和mod_jk2。后來mod_jk2由於沒有開發人員的支持,沒更新了,轉而更新mod_jk,所以現在一般都使用mod_jk做Apache和Tomcat的連接器。要指出的是mod_jk支持 Apache 1.x和2.X系列。
不過,自從Apache2.2出來后,又多了兩種種選擇,那就是 proxy-ajp 和 http-proxy。大家知道Apache里的proxy模塊,可以實現雙向代理功能,功能非常強大。其實從連接器的實現原理上來說,用proxy模塊來實現是非常自然的。proxy模塊的功能無非就是把相關的請求發給特定的主機再返回結果。那連接器的功能需求就是要把所有對Servlet/JSP的請求都轉給后台的Tomcat。而且所FreeBSD郵件列表上說,使用proxy-ajp要比 mod_jk的效率要高。看來,使用Apache自帶模塊,要比另外編譯的來得可靠。
既然有了ajp_proxy 專門的 ajp 協議代理,http-proxy 就沒有必要使用這種方法了。
1、配虛擬主機vshost,開啟相關模塊
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
#開啟 mod_proxy_balancer
LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
LoadModule slotmem_shm_module modules/mod_slotmem_shm.so
LoadModule lbmethod_byrequests_module modules/mod_lbmethod_byrequests.so
# Virtual hosts
Include conf/extra/httpd-vhosts.conf
2、httpd-vhosts.conf
<VirtualHost *:80> ServerAdmin webmaster@rainbow.idreamsky.com DocumentRoot "C:/xampp/htdocs" ServerName rainbow.idreamsky.com ErrorLog "logs/rainbow.idreamsky.com.log" CustomLog "logs/rainbow.idreamsky.com.log" common ProxyPreserveHost On ProxyReceiveBufferSize 8388608 ProxyPassMatch ^/images/gameIcons/* ! ProxyPassMatch ^/images/reportmail/* ! ProxyPassMatch ^/images/sysmsg/* ! ProxyRequests Off ProxyPass / balancer://cluster/ stickysession=JSESSIONID nofailover=Off timeout=5 maxattempts=3 ProxyPassReverse / balancer://cluster/ <Proxy balancer://cluster> BalancerMember ajp://127.0.0.1:8009 route=tomcat1 </Proxy> </VirtualHost> <VirtualHost *:80> ServerAdmin webmaster@m.rainbow.idreamsky.com DocumentRoot "C:/xampp/htdocs" ServerName m.rainbow.idreamsky.com ErrorLog "logs/m.rainbow.idreamsky.com-error.log" CustomLog "logs/m.rainbow.idreamsky.com-access.log" common ProxyPreserveHost On ProxyReceiveBufferSize 8388608 ProxyPassMatch ^/images/gameIcons/* ! ProxyPassMatch ^/images/reportmail/* ! ProxyPassMatch ^/images/sysmsg/* ! ProxyRequests Off ProxyPass / balancer://cluster/ stickysession=JSESSIONID nofailover=Off timeout=5 maxattempts=3 ProxyPassReverse / balancer://cluster/ <Proxy balancer://cluster> BalancerMember ajp://127.0.0.1:8019 route=tomcat2 </Proxy> </VirtualHost>
參考文檔:
1、Apache和tomcat服務器使用ajp_proxy模塊 http://www.server110.com/apache/201404/10273.html
2、mod_jk模式 Apache和Tomcat整合配置實現JAVA應用的“動靜”分離 http://blog.sina.com.cn/s/blog_3c9872d00102w00y.html