apache 配虚拟主机转发到tomcat
我用的是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