设为首页 收藏本站
查看: 1373|回复: 0

[经验分享] Apache和基于虚拟主机的Tomcat集群方案

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2014-1-14 10:14:43 | 显示全部楼层 |阅读模式
最近建设了北京某政府机构的网站,网站前段使用Apache做负载均衡,后端使用Tomcat做的集群,基于虚拟主机的方式访问,并且实现了静态资源和动态资源的分离。

开始的建设方案有两种,一种是使用apache的反向代理,配置虚拟主机访问不同的域名反向代理至不同的应用或者路径;第二种是tomcat配置虚拟主机,apache只做负载均衡转发请求。后来考虑了一下,还是决定使用反向代理。

首先是apache:

apache虚拟主机配置:

虚拟主机配置:【片段】


Listen 80
NameVirtualHost *:80
<VirtualHost *:80>
ServerName www.xx.gov.cn
ProxyPreserveHost On
ProxyRequests Off
ProxyPass / http://127.0.0.1:9000/
ProxyPassReverse / http://127.0.0.1:9000/
ErrorLog logs/www.xx.gov.cn-error_log.log
CustomLog logs/www.xx.gov.cn-access_log.log common
</VirtualHost>

这样通过www.xxx.gov.cn访问时apache会代理这个域名的访问,去访问http://127.0.0.1:9000,而如果不通过反向代理,由于tomcat在内网防火墙的保护之下,客户端无法直接访问tomcat,apache的重定向操作会被防火墙拦截。
注意:ProxyPassReverse 是必须要配置的,因为万一反向代理请求的是一个重定向操作,那么客户端也会随之重定向,那么会面临上述同样的问题,所以,配置该选项,apache会同样对重定向的操作进行代理,客户端感觉不到重定向。

动静分离:

首先将tomcat下的webapps目录作为apache的一个虚拟目录,或者将tomcat的应用复制一份另存目录,至保留该目录下的静态文件,配置如下【httpd.conf】:


Alias /bjoweb "d:\Pictures\web"
<Directory "d:\Pictures\web">
    Options FollowSymLinks
    AllowOverride None
    Order deny,allow
    allow from all
</Directory>

Alias /owebfiles "D:\web\wenjian\webapps\owebfiles"
<Directory "D:\bjoweb\wenjian\webapps\owebfiles">
    Options FollowSymLinks
    AllowOverride None
    Order deny,allow
    allow from all
</Directory>

然后配置【workers.properties】:


#所有请求都由controller这个server处理
/*=controller
!/bjoweb/index.html=controller
/jkstatus=controller
!/*.gif=controller
!/*.jpg=controller
!/*.png=controller
!/*.css=controller
!/*.js=controller
!/*.doc=controller
!/*.pdf=controller
!/*.mdb=controller
!/*.gif=controller
!/*.jpg=controller
!/*.bmp=controller
!/*.png=controller
!/*.zip=controller
!/*.rar=controller

!/*.xls=controller

#所有包含jkstatus请求的都由status这个server处理
/jkstatus=status

这样,所有的静态资源都会交由apache处理,而动态网页等会由中间件去处理。

mod_jk配置:


# worker列表
worker.list=controller, status

#第一个server的配置,server名为s1
#ajp13 端口号,在tomcat下server.xml配置,默认8080
worker.s1.port=9019
#tomcat的主机地址,如不为本机,请填写ip地址
worker.s1.host=192.168.1.18
worker.s1.type=ajp13
#server的加权比重,值越高,分得的请求越多
worker.s1.lbfactor=1

#第二个server的配置,server名为s2
worker.s2.port=9009
worker.s2.host=192.168.1.18
worker.s2.type=ajp13
worker.s2.lbfactor=1

#server名为controller,用于负载均衡
worker.controller.type=lb
#重试次数
worker.retries=3   
#指定分担请求的server列表,用逗号分隔
worker.controller.balanced_workers=s1,s2
#设置用于负载均衡的server的session可否共享 有不少文章说设置为1是可以的,但是我是设置为0才可以的
worker.controller.sticky_session=1
worker.controller.sticky_session_force=0

worker.status.type=status

Tomcat配置【片段,域名多达20多个】:


<Host name="www.xxx.gov.cn"  appBase="webapps"
            unpackWARs="true" autoDeploy="true"
            xmlValidation="false" xmlNamespaceAware="false">
         <Context path="" docBase="web" debug="0" reloadable="true" crossContext="true"/>
         <Logger className="org.apache.catalina.logger.FileLogger" directory="logs" prefix="www_xxx_gov" suffix=".txt" timestamp="true"/>
      </Host>
       <!--yifen-->
       <Host name="www.xxx.xxx.gov.cn" debug="0" appBase="D:\\sfile\\Zh_CN\\yfy" unpackWARs="true" autoDeploy="true" xmlValidation="false"  xmlNamespaceAware="false">
         <Context path="" docBase="." debug="0" reloadable="true" crossContext="true"/>
         <Logger className="org.apache.catalina.logger.FileLogger" directory="logs" prefix="www_xxx_gov" suffix=".txt" timestamp="true"/>
      </Host>


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-14207-1-1.html 上篇帖子: 一台服务器多个TomCat设置 下篇帖子: 修改Tomcat端口 虚拟主机
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表