Windows 下 Apache HTTP Server 与 Tomcat 的整合
整合准备:
1、Apache HTTP Server(下文用Apache简称)
2、Tomcat 7或8
3、mod_jk.so (tomcat-connectors)-这个文件是用来链接http server与tomcat的桥梁
下载地址:http://mirrors.hust.edu.cn/apache/tomcat/tomcat-connectors/jk/binaries/windows/
下载的版本要与Apache的版本一致
Apache的安装都是下一步,只是有个地方要输入填一下
安装的位置自己选择,我的安装在:D:\Apache\HttpServer\Apache2.2
tomca的的安装就不介绍了:解压一个或安装版的都行
Apache与Tomca整合:
1 、解压下载下来的tomcat-connectors-1.2.40-windows-i386-httpd-2.2.x(我的Apache是2.2.25),找到
mod_jk.so文件并把它拷贝到Apache安装目录下的modules文件夹中
2、打开 Apache 的安装目录,其主要配置都集中在conf文件夹下的 httpd.conf 文件中,位置如图所示:
(1)修改DocumentRoot
DocumentRoot 一般为js、css、html、png、gif、jpg等静态资源文件的存放目录,这里我们定义存放在D:/Apache/HttpServer/www文件夹下。修改后的内容如下:
DocumentRoot "D:/Apache/HttpServer/www"
在其下面建立一个与项目webroot相同的文件在把静态的文件拷贝过来
(2)图如下:第193行,将 Deny from all 改成 allow from all 否则访问静态文件时页面会提示 Forbidden 禁止访问的信息。
(3)Directory 修改成和 DocumentRoot 对应的值相同
(4)将 Options Indexes FollowSymLinks 注释掉,并在其下追加一行 Options None。作用和 Tomcat下的conf/web.xml中的 listings 设置成 false 一样,为了避免在浏览器中列出 服务端资源 的目录结构。
3、Apache 关联 Tomcat 的配置
在conf 文件夹(httpd.conf 所在的文件夹)新建一个 workers.properties 文件,内容如下:
workers.tomcat_home=D:/Apache/apache-tomcat-8.0.9
workers.java_home=C:/Java/jdk1.8.0
ps=/
worker.list=ajp13
worker.ajp13.port=8009
worker.ajp13.host=localhost
worker.ajp13.type=ajp13
在httpd.conf 的最末尾处(就是
<IfModule ssl_module>
SSLRandomSeed startup builtin
SSLRandomSeed connect builtin
</IfModule>的后面) 添加一段代码
##wen#
LoadModule jk_module modules/mod_jk.so
JKWorkersFile conf/workers.properties
JkLogFile logs/mod_jk.log
<VirtualHost *>
ServerAdmin localhost
DocumentRoot D:/Apache/HttpServer/www
ServerName 127.0.0.1:80
DirectoryIndex index.html index.htm index.jsp login.jsp
ErrorLog logs/shsc-error_log.txt
CustomLog logs/shsc-access_log.txt common
JkMount /*WEB-INF ajp13
JkMount /manage/* ajp13
JkMount /CaptchaImageAction/* ajp13
JkMount /*.jsp ajp13
JkMount /*.do ajp13
</VirtualHost>
用来过滤那些请求交由tomcat来处理
补充:
多个tomcat的配置
1、配置apache的conf目录下的workers.properties文件
# list the workers by name
#worker.list=DLOG4J, status, tomcat3, tomcat4,tomcat5
worker.list=DLOG4J, status, tomcat1
# localhost server 1
# ------------------------
worker.tomcat1.port=8009
worker.tomcat1.host=localhost
worker.tomcat1.type=ajp13
worker.tomcat1.lbfactor=100
# localhost server 2
# ------------------------
#worker.tomcat2.port=8010
#worker.tomcat2.host=localhost
#worker.tomcat2.type=ajp13
#worker.tomcat2.lbfactor=100
# localhost server 3
# ------------------------
#worker.tomcat3.port=8009
#worker.tomcat3.host=xxxxxx
#worker.tomcat3.type=ajp13
#worker.tomcat3.lbfactor=100
# localhost server 4
# ------------------------
#worker.tomcat4.port=8010
#worker.tomcat4.host=xxxxxx
#worker.tomcat4.type=ajp13
#worker.tomcat4.lbfactor=100
# localhost server 5
# ------------------------
#worker.tomcat5.port=8011
#worker.tomcat5.host=xxxxxx
#worker.tomcat5.type=ajp13
#worker.tomcat5.lbfactor=100
#worker.DLOG4J.type=lb
#worker.DLOG4J.balance_workers=tomcat3,tomcat4,tomcat5
#default session is true
#worker.DLOG4J.sticky_session=true
worker.status.type=status
这个配置里面注释掉了包括负载均衡的设置,当前只支持了一个tomcat1,与apache整合
2、配置apache的conf目录下,增加uriworkermap.properties文件
/*=DLOG4J
/jkstatus=status
!/*.gif=DLOG4J
!/*.jpg=DLOG4J
!/*.png=DLOG4J
!/*.css=DLOG4J
!/*.js=DLOG4J
!/*.htm=DLOG4J
!/*.html=DLOG4J
!/*.php=DLOG4J
3、修改conf文件http.conf
LoadModule jk_module modules/mod_jk.so
<IfModule jk_module>
JkWorkersFile conf/workers.properties
JkMountFile conf/uriworkermap.properties
JkLogFile logs/mod_jk.log
JkLogLevel warn
</IfModule>