使用Apache的代理,整合多个Tomcat

                 一个网友的一个Tomcat下面跑了10几个应用,经常造成内存溢出,希望能够拆分到多个Tomcat里面。从CSDN上面找到我。

现状分析:
  • 其每个应用都有各自的二级域名,能够通过互联网访问
  • 其有几个应用放在一起,也就是只有部分应用希望运行在一个tomcat里面
  • 目前使用了jk的连接器
建议:
  • 运行多个tomcatr实例,通过侦听的端口进行区分。
  • 对于每个tomcat,配置各自需要服务的虚拟主机
  • 使用Apache的Proxy进行代理转发,转到对应的tomcat上面,重点在端口不同
  • 取消jk连接,减少复杂度。虽然损失了一些Apache对静态文本的性能,但整体看还是值得的

结果:
  • tomcat的server.xml里面配置了各自的虚拟主机,比如 www.aaa.com 和 oa.aaa.com。第一个是主域名,第二个是二级域名。tomcat端口为8080。第二个tomcat配置了一个 sales.aaa.com 用来支持销售,端口为8081。详细的配置文件请参考tomcat的虚拟主机配置,这里就不写了。
  • 测试各个虚拟主机的运行是否正常,使用  http:// oa.aaa.com:8080/ 这样的方式进行测试。
  • apache的 httpd.conf配置
    • 打开代理所需要的.so支持模块,在httpd.conf里面,取消下面四行的注释:
      1. LoadModule proxy_module modules/mod_proxy.so
      2. LoadModule proxy_connect_module modules/mod_proxy_connect.so
      3. LoadModule proxy_http_module modules/mod_proxy_http.so
      4. LoadModule proxy_ftp_module modules/mod_proxy_ftp.so

    • 制作各自的虚拟主机
    1. NameVirtualHost *:80 
    2. <VirtualHost *:80>
    3. ServerName www.aaa.com
    4. ProxyPass / http:// www.aaa.com:8080/
    5. ProxyPassReverse / http:// www.aaa.com:8080/
    6. </VirtualHost>
    7. <VirtualHost *:80>
    8. ServerName oa.aaa.com
    9. ProxyPass / http:// oa.aaa.com:8080/
    10. ProxyPassReverse / http:// oa.aaa.com:8080/
    11. </VirtualHost>
    12. <VirtualHost *:80>
    13. ServerName sales.aaa.com
    14. ProxyPass / http://sales.aaa.com:8081/
    15. ProxyPassReverse / http://sales.aaa.com:8081/
    16. </VirtualHost>













<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>           

再分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshow

猜你喜欢

转载自blog.csdn.net/jgfyyfd/article/details/86589585