`

ApacheTomcat整合教程__zhuanzhuangzhuang

阅读更多

准备相关软件(完整内容见附件)

下载安装 Apache2.2.4

Apache 下载地址: http://archive.apache.org/dist/httpd/binaries/win32/ ,选择下载 windows 平台安装包文件 apache_2.2.4-win32-x86-no_ssl.msi

 

 

接受安装协议

 

配置 Apache 服务器信息

 

Network Domain 设置站点名称,这个不会对实际站点产生影响。

Server Name 设置当前服务器名称,这个不会对实际站点产生影响。

Administrator’s Email Address 设置站点管理员邮件地址, Apache 文档说明当站点出错时的页面底部会出现该地址。

 

选择安装类型

 

一般选择典型 (Typical) 安装

 

选择安装路径

 

这里使用默认安装路径,实际安装过程可以选择其他路径。

 

等待安装过程

 

 

安装完毕

 

 

下载 Tomcat5.5.26

Tomcat5.5.26 下载地址: http://tomcat.apache.org/download-55.cgi ,选择 Core zip 包。

 

下载 Tomcat Connector(jk.1.2.6)

Tomcat Connector 下载地址: http://www.apache.org/dist/tomcat/tomcat-connectors/jk/binaries/win32/jk-1.2.26/ ,此处注意一定要下载与 Apache 版本匹配的 jk jk 文件名后半部分名称反应 Apache 的版本,如: mod_jk-1.2.26-httpd-2.2.4.so 其匹配的 Apache 2.2.4 ,与本次安装的 Apache 版本一致。

 

 

单台主机多站点场景

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

 

Apache 配置

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

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

# 以下为 tomcat 集成配置部分

LoadModule jk_module modules/mod_jk-1.2.26-httpd-2.2.4.so

JkWorkersFile conf/workers.properties

 

# 如果机器有多个 IP 地址请务必使用 *

NameVirtualHost *:80

 

#bbs.abc.com 虚拟站点

<VirtualHost *:80>

ServerName bbs.abc.com

JkMount /*.* tomcatbbs

DirectoryIndex index.jsp

</VirtualHost>

 

#wap.abc.com 虚拟站点

<VirtualHost *:80>

ServerName wap.abc.com

JkMount /*.* tomcatwap

DirectoryIndex index.jsp

</VirtualHost>

配置完成以后使用开始程序菜单目录中的 Apache HTTP Server 2.2.4 à Configure Apache Server à Test Configuration 检查 Apache 配置文件是否正确。

Tomcat Connector 配置

Apache 配置目录 Apache2.2\conf 创建 workers.properties 配置文件,该文件主要用于配置 Apache Tomcat 的集成要用到的 Tomcat 实例。

Workers.properties 文件放置一下内容;

 

# 下面是 Tomcat 实例列表

worker.list=tomcatbbs,tomcatwap

 

#Tomcatbbs 实例配置

worker.tomcatbbs.host=127.0.0.1

worker.tomcatbbs.port=8009

worker.tomcatbbs.type=ajp13

 

#Tomcatwap 实例配置

worker.tomcatwap.host=127.0.0.1

worker.tomcatwap.port=9009

worker.tomcatwap.type=ajp13

Tomcat 配置

Wap bbs 分别运行在两个 Tomcat 实例下,将刚才下载的 Tomcat 分别解压为两个目录 tomcatbbs tomcatwap

 

Tomcatbbs 实例配置

打开 bbs 站点 tomcat 目录下的 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="8009"

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

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

 

再找到 Host 节点配置更改一些内容

<!-- Define the default virtual host

           Note: XML Schema validation will not work with Xerces 2.2.

       -->

<Host name="bbs.abc.com" appBase="webapps\bbs"

       unpackWARs="true" autoDeploy="true"

       xmlValidation="false" xmlNamespaceAware="false">

 

中间忽略 N 多注释

 

<!-- 下面是增加的内容 -->

<Context docBase="." path="" reloadable="true"/>

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

 

Tomcatwap 实例配置

打开 wap 站点 tomcat 目录下的 conf\server.xml ,找到下面的节点内容

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

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

<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="9009"

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

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

 

在找到 Host 节点配置更改一些内容

<!-- Define the default virtual host

           Note: XML Schema validation will not work with Xerces 2.2.

       -->

<Host name="wap.abc.com" appBase="webapps\wap"

       unpackWARs="true" autoDeploy="true"

       xmlValidation="false" xmlNamespaceAware="false">

 

中间忽略 N 多注释

 

<!-- 下面是增加的内容 -->

<Context docBase="." path="" reloadable="true"/>

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

 

常见问题

修改 host 文件,加入 wap.abc.com bbs.abc.com 解析至当前机器 127.0.0.1

分别启动 Apache 和两个 Tomcat ,打开两个浏览器分别输入 wap.abc.com bbs.abc.com 测试是否显示不同的站点内容。

 

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

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

Ø          Host JkMount /*.* tomcatwap 配置 tomcat 对应的 Service.xml 中配置的域名是否一致

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

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

Ø          Tomcat 站点内容目录下是否有 httpd.conf 文件 Host 节点中 DirectoryIndex index.jsp 配置的文件

 

单台主机单站点集群、负载均衡

Apache 配置

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

Apache 安装目录找到 conf/httpd.conf 文件,在末尾增加一下内容

# 以下为 tomcat 集成配置部分

LoadModule jk_module modules/mod_jk-1.2.26-httpd-2.2.4.so

JkWorkersFile conf/workers.properties

JkMount /*.* lbcontroller

 

找到下面配置,将默认目录文件 index.html 改为 index.jsp

<IfModule dir_module>

    DirectoryIndex index.jsp

</IfModule>

Tomcat Connector 配置

Apache 配置目录 Apache2.2\conf 创建 workers.properties 配置文件,该文件主要用于配置 Apache Tomcat 的集成要用到的 Tomcat 实例和负载均衡分发控制器。

Workers.properties 文件放置一下内容;

# 下面是分发控制器 注意不要放 tomcat 实例

worker.list=lbcontroller

 

#Tomcat1 实例配置 这里要和 Tomcat 配置文件 Service.xml jvmRoute 保持一致

worker.tomcat1.host=127.0.0.1

worker.tomcat1.port=8009

worker.tomcat1.type=ajp13

# 分发权重 值越大负载越大

worker.tomcat1.lbfactor = 1

 

#Tomcat2 实例配置

worker.tomcat2.host=127.0.0.1

worker.tomcat2.port=9009

worker.tomcat2.type=ajp13

# 分发权重 值越大负载越大

worker.tomcat2.lbfactor = 1

 

# 负载均衡分发控制器

worker.lbcontroller.type=lb

worker.lbcontroller.balance_workers=tomcat1,tomcat2

Tomcat 配置

Tomcat 配置文件 Service.xml 主要注意两个地方,一个是 Engine 节点需要增加节点标识 jvmRoute ,一个是将原本注释掉的 Session 复制节点改为有效。具体如下

 

 

关联阅读:

http://www.iteye.com/problems/9683

 

http://www.linuxjournal.com/article/8561

 

http://topic.csdn.net/u/20090804/17/f890e8b4-8912-46c1-ba91-37f0af4f3d51.html

 

http://www.iteye.com/problems/26967

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics