系统平台: CentOS 6.3 x64
Apache httpd版本: 2.4.3
Tomcat: 7.0
实现原理: 由Apache httpd接收用户请求,然后根据配置文件通过ajp协议请求响应的Tomcat,获取Tomcat响应结果后发回给用户
步骤一: 安装Apache httpd
下载地址: http://httpd.apache.org/
版本:2.4
安装方法:./config时用--with-XX指定依赖库即可, 然后make && make install
步骤2: 安装JK
下载地址:http://tomcat.apache.org/download-connectors.cgi
版本:1.2
下载后得到jk的src文件
tar -xzvf jakarta-tomcat-connectors-1.2.14-src.tar.gz #解压
cd jakarta-tomcat-connectors-1.2.14-src/jk/native #进入该目录
./buildconf.sh #执行
./configure --with-apxs=/Apache_Home/bin/apxs
make
make install
执行./buildconf.sh时,如果出现: You need autoconf version 2.59 or newer installed 错误, 则yum install autoconf;
如果出现You need libtool version 1.4 or newer installed错误,则yum install libtool。
这样JK就安装到了Apache_Home/module/mod_jk.so中, 检查安装是否成功:
cd /Apache_Home/module
ls | grep jk
步骤3:配置apache httpd
配置mod_jk, 在http.conf末尾
Include conf/mod_jk.conf
以上表示将mod_jk.conf配置文件包含进来
修改mod_jk.conf文件
为了保持httpd.conf文件的简洁,把jk模块的配置放到单独的文件中来
在mod_jk.conf文件中添加以下内容:
# Load mod_jk2 module
LoadModule jk_module modules/mod_jk.so #加载jk_mod模块
# Where to find workers.properties(引用workers配置文件)
JkWorkersFile conf/workers.properties
# Where to put jk logs(log文件路径)
JkLogFile logs/mod_jk2.log
# Set the jk log level [debug/error/info](log级别)
JkLogLevel info
# Select the log format(log格式)
JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "
# JkOptions indicate to send SSL KEY SIZE,
#JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories
# JkRequestLogFormat set the request format
JkRequestLogFormat "%w %V %T"
# Send JSPs for context / to worker named loadBalancer(URL转发配置,匹配的URL才转发到tomcat进行处理)
JkMount /*.jsp controller #controller为负载金衡控制器名称,可任意定义,但须在workers.properties中定义
# JkMount /*.* controller
编写上面指定的workers.properties文件
#server 列表
worker.list = controller,tomcat1,tomcat2
# tomcat1(ajp13 端口号,在tomcat下server.xml配置,默认8009)
worker.tomcat1.port=8009
#tomcat的主机地址,如不为本机,请填写ip地址
worker.tomcat1.host=localhost
worker.tomcat1.type=ajp13
#server的加权比重,值越高,分得的请求越多
worker.tomcat1.lbfactor = 1
# tomcat2
worker.tomcat2.port=8009
worker.tomcat2.host=Tomcat2所在主机IP
worker.tomcat2.type=ajp13
worker.tomcat2.lbfactor = 1
# controller(负载均衡控制器)
# 指定分担请求的tomcat
worker.controller.balance_workers=tomcat1,tomcat2
#worker.controller.sticky_session=true
说明: 此文件配置了2个tomcat服务器进行负载均衡处理
步骤4. 如果两个Tomcat位于一台主机,那么配置其中一个Tomcat, 否则这部跳过
vi /usr/local/tomcat/conf/server.xml
<!-- ajp协议端口由默认的8009改成9009, 为了对应tomcat2,还需要把上一步骤中work.propeties的worker.tomcat2.port改为9009
<Connector port="9009" protocolHandlerClassName="org.apache.jk.server.JkCoyoteHandler" redirectPort="8443" protocol="AJP/1.3" />
如果在同一台电脑上配置两个Tomcat,则把Tomcat Http端口也改变一下,以免两个Tomcat启动时端口冲突
至此,系统已经整个完毕启动Apache和Tomcat