下载安装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
下载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