首页 > 代码库 > Apache + Tomcat
Apache + Tomcat
这个是非集群模式,以后可能还会写集群的情况
今天折腾了好久才把这个跑起来,静态资源归Apache加载不用请求Tomcat了,这样以后就方便做集群了,用的是JK的方式,据说还有其他的方式,这个没有详细去研究,今天就先把自己的过程说一遍方便以后查看。
首先需要一个mod_jk-1.2.31-httpd-2.2.3.so文件 因为我的Apache是2.2的版本,所以就用的httpd-2.2.3的版本,这个文件就是Apache和Tomcat的粘合剂,把这个文件放在Apache2.2/modules的目录下。这里说下配置吧,分部来操作,我这里讲的是配置文件分开配置的,这样做的好处就是无侵入性:
1.首先在Apache2.2/conf文件夹中创建workers.properties,内容:
worker.list=controllerworker.controller.port=8009worker.controller.host=192.168.1.123worker.controller.type=ajp13worker.controller.lbfactor=1
2.首先在Apache2.2/conf文件夹中创建mod_JK.conf,内容:
JkMount /* controller JkUnMount /*.html controller JkUnMount /*.htm controller JkUnMount /*.vga controller JkUnMount /*.gif controller JkUnMount /*.swf controller JkUnMount /*.bmp controller JkUnMount /*.png controller JkUnMount /*.wma controller JkUnMount /*.wmv controller JkUnMount /*.jpg controller JkUnMount /*.js controller JkUnMount /*.css controller
3.找到Apache2.2/conf/extra/httpd-vhosts.conf文件,修改后的内容:
#加载JK模块,指定.so文件路径。 LoadModule jk_module modules/mod_jk.so#加载指定workers.properties路径。 JkWorkersFile conf/workers.properties NameVirtualHost *:80Alias /web "E:/Apache2.2/htdocs/web/"<VirtualHost *:80> ServerAdmin mail@qq.com DocumentRoot "E:/Apache2.2/htdocs/web/" ServerName 127.0.0.1/web <Directory /> Options FollowSymLinks AllowOverride None </Directory> <Directory "E:/Apache2.2/htdocs/web/"> Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all </Directory> ServerAlias localhost/web Include conf/mod_JK.conf</VirtualHost>
4.找到Tomcat的配置文件server.xml(这个步骤不是必须的,取决于第一步的配置worker.controller.port=8009)
<!-- Define an AJP 1.3 Connector on port 8009 --> <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
查看一下这两个端口是否一致。不一致需要修改成一致
经过以上4个步骤我的项目算是可以正常访问了。但是我仍然还是有很多疑问,自己目前解决不了
参考:
http://ixdba.blog.51cto.com/2895551/564060/
http://www.cnblogs.com/itech/archive/2009/08/18/1548723.html
http://lists.centos.org/pipermail/centos/2012-April/125283.html
这3篇写得非常好