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

[经验分享] apache与多个tomcat集成 单台主机多站点场景

[复制链接]

尚未签到

发表于 2017-1-13 09:26:57 | 显示全部楼层 |阅读模式
下载安装Apache2.2.4,选择下载windows平台安装包文件apache_2.2.4-win32-x86-no_ssl.msi。

下载tomcat Connector(jk1.2.6).

此处注意一定要下载与Apache版本匹配的jk。jk文件名后半部分名称反应Apache的版本,如:mod_jk-1.2.26-httpd-2.2.4.so其匹配的Apache为2.2.4,与本次安装的Apache版本一致。

正文:

在一台机器上配置多个站点,每个站点有自己独立的域名。假设服务器有两个站点www.123ip.com和www.124ip.com,两个站点分别运行在一个tomcat下。为方便说明,下面分别简称为www.123ip.com和www.124ip.com站点。

apache配置

将Tomcat Connector文件mod_jk-1.2.26-httpd-2.2.4.so拷贝到Apache安装目录Apache2.2\modules下。

在Apache配置文件Apache2.2\conf\httpd.conf末尾增加以下内容;

include "C:\Program Files\Apache Software Foundation\Apache2.2\conf\mod_jk.conf"

在conf文件夹下创建mod_jk.conf文件,内容为:

LoadModule jk_module modules/mod_jk-1.2.26-httpd-2.2.4.so
JkWorkersFile conf/workers.properties
#此处是指定分配给tomcat的请求 例如*.do *.jsp
JkMount /* controller

在conf文件夹下创建workers.properties文件,内容为:

#server
worker.list = controller
#========tomcat1========
worker.tomcat1.port=8020
worker.tomcat1.host=127.0.0.1
worker.tomcat1.type=ajp13
worker.tomcat1.lbfactor = 1
#========tomcat2========
worker.tomcat2.port=8030
worker.tomcat2.host=127.0.0.1
worker.tomcat2.type=ajp13
worker.tomcat2.lbfactor = 1

#========controller,负载均衡控制器========
worker.controller.type=lb
worker.controller.balanced_workers=tomcat1,tomcat2
worker.controller.sticky_session=false
worker.controller.sticky_session_force=1
#worker.controller.sticky_session=1


然后配置conf\default文件夹下的httpd-vhosts.conf文件:

<VirtualHost *:80>
    ServerName www.123ip.com
    ProxyPass / http://www.123ip.com:8080/
    ProxyPassReverse / http://www.123ip.com:8080/
    DirectoryIndex index.jsp
</VirtualHost>
<VirtualHost *:80>
    ServerName  www.124ip.com
    ProxyPass / http://www.124ip.com:9090/
    ProxyPassReverse / http://www.124ip.com:9090/
    DirectoryIndex index.jsp
</VirtualHost>

以上是apache相关配置过程。

Tomcat1配置:

打开tomcat1目录下的conf\server.xml,找到下面的节点内容:

<Server port="8005" shutdown="SHUTDOWN">

<!-- Define a non-SSL HTTP/1.1 Connector on port 8080 -->

<Connector port="8080" maxHttpHeaderSize="8192"

               maxThreads="150" minSpareThreads="25" maxSpareThreads="75"

               enableLookups="false" redirectPort="8443" acceptCount="100"

               connectionTimeout="20000" disableUploadTimeout="true" />

中间忽略N多注释

<!-- Define an AJP 1.3 Connector on port 8009 -->

<Connector port="8020"

               enableLookups="false" redirectPort="8443" protocol="AJP/1.3" />

<!-- You should set jvmRoute to support load-balancing via AJP ie :
    <Engine name="Catalina" defaultHost="www.123ip.com" jvmRoute="tomcat1">   



以上标注红色的配置,同一台机器的多个Tomcat不能重复使用以上端口,下半部分AJP的端口配置要和workers.properties的端口配置保持一致。请注意本次配置分别改了两个端口为8080和9090。

另创建Host节点:

<Host name="www.123ip.com" appBase="webapps" autoDeploy="true"  unpackWARs="true" xmlNamespaceAware="false" xmlValidation="false" >
  <Context docBase="." path="/www.123ip.com" reloadable="true"/>
</Host>

以上第一处是配置站点域名和站点内容路径,下面增加的内容是配置站点的根路径。

Tomcat2配置:

打开tomcat2目录下的conf\server.xml,找到下面的节点内容:

<Server port="8006" shutdown="SHUTDOWN">

<!-- Define a non-SSL HTTP/1.1 Connector on port 8080 -->

<Connector port="9090" maxHttpHeaderSize="8192"

               maxThreads="150" minSpareThreads="25" maxSpareThreads="75"

               enableLookups="false" redirectPort="8443" acceptCount="100"

               connectionTimeout="20000" disableUploadTimeout="true" />

中间忽略N多注释

<!-- Define an AJP 1.3 Connector on port 8009 -->

<Connector port="8030"

               enableLookups="false" redirectPort="8443" protocol="AJP/1.3" />

<!-- You should set jvmRoute to support load-balancing via AJP ie :
    <Engine name="Catalina" defaultHost="www.124ip.com" jvmRoute="tomcat2">   



以上标注红色的配置,同一台机器的多个Tomcat不能重复使用以上端口,下半部分AJP的端口配置要和workers.properties的端口配置保持一致。请注意本次配置分别改了两个端口为8080和9090。

另创建Host节点:

<Host name="www.124ip.com" appBase="webapps" autoDeploy="true"  unpackWARs="true" xmlNamespaceAware="false" xmlValidation="false" >
  <Context docBase="." path="/www.124ip.com" reloadable="true"/>
</Host>

以上第一处是配置站点域名和站点内容路径,下面增加的内容是配置站点的根路径。

最后找到C:\Windows\System32\drivers\etc文件夹下的hosts文件,将其这行改为   127.0.0.1    www.123ip.com www.124ip.com

用eclipse把2个不同的项目分别部署在tomcat1和tomcat2上,然后从新启动apache和tomcat1和tomcat2,

打开浏览器输入http://www.123ip.com/test1/index.jsp 和 http://www.124ip.com/test2/index.jsp 测试是否显示不同的站点内容,到目前集成结束成功。

如果没有达到预期效果请检查一下几点配置:

conf\httpd.conf配置文件是否配置的两个Host是否配置了域名

host中JkMount /* controller配置tomcat对应的Service.xml中配置的域名是否一致

worker.properites中配置的tomcat实例端口是否和对应tomcat Service.xml文件中的AJP端口是否一致

tomcat Service.xml配置文件Host节点是否有<Context docBase="." path="" reloadable="true"/>配置内容

conf\default\httpd-vhosts.conf配置文件里 <VirtualHost *:80>节点下是够有DirectoryIndex index.jsp

运维网声明 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-327781-1-1.html 上篇帖子: 使用apache alias/sendfile功能实现高性能的图片服务 下篇帖子: apache通过基于域名方式的虚拟主机与多个weblogicServer集成
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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