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

原文地址:https://www.cnblogs.com/xunux/p/6044247.html