apache+tomcat整合宝典(一)
apache+tomcat整合web项目作者:viki
2012-09-19
1.卷首语
前端时间同学叫我帮他发布多个web项目,服务器是windows 2003。他们的老大要求环境必须用apache+tomcat整合发布。好吧,前端时间我是挺有空的,就帮帮吧…谁知道,一搞就好几天啊。
不熟练是肯定的了。apache公司就用过一次,不想nginx研究的那么深入。
主要还是配置apache+tomcat时各种配置的不一样,都导致最后结果的不同。
所以我还是喜欢nginx。^_^
下面是我总结出的两种发布方式。
PS:如果想了解集群或session共享相关的配置,请参照其他文章,本文只是做个简单的整合配置。
2.准备工作
注意:
1、以下软件版本不是最新版。因为要根据开发环境部署服务器环境。
其实应该是反过来才对,开发习惯问题而已。
2、服务器版本位数不同,版本也不同的。
2.1. 下载apache软件并安装
此处版本为2.2.2,下载地址:
http://mirror.bjtu.edu.cn/apache//httpd/binaries/win32/httpd-2.2.22-win32-x86-openssl-0.9.8t.msi
apache的安装无需多说了,直接选择默认的80端口,服务方式管理就行了。
2.2. 下载tomcat绿色版
此处版本为6.0.35,下载地址:
http://labs.mop.com/apache-mirror/tomcat/tomcat-6/v6.0.35/bin/apache-tomcat-6.0.35-windows-x86.zip
2.3. 下载jdk6
windows版本的jdk没有绿色版,确实是一个比较吭的地方:
http://download.oracle.com/otn-pub/java/jdk/6u35-b10/jdk-6u35-windows-i586.exe
3.apache + tomcat + mod_jk
第一种方法是使用mod_jk模块,这个模块是tomcat团队提供的一个整合工具。
唯一的缺点是不能跟tomcat的虚拟目录一起使用(则Context中的path字段),只能使用tomcat的虚拟主机
3.1. 配置tomcat
3.1.1. 配置 server.xml文件
位置:$tomcat_base/conf
1、如果使用mod_jk整合,就会使用tomcat的ajp协议的方式,所以tomcat的http connector就没必要开着了,直接注释掉就好了
[*]
2、然后找到ajp的connector,端口我就不改了,加入了几个属性(address的作用不多说了,就是只能通过访问address的值才能访问;这样的话,tomcat就完全隐藏在apache后面了。如果多台服务器做集群的话,也可以配置成内网地址看具体环境而配置配置)
[*]
注意:这里tomcat6跟tomcat7有一个区别,tomcat7的protocol可以使用nio的protocol:“org.apache.coyote.ajp.AjpNioProtocol”。tomcat6不支持ajp协议的nio方式。
3、配置tomcat虚拟目录。只有一个项目的情况下,这样配置应该是最方便的吧。“E:\\a”是网站根目录
[*]
[*]
[*]
启动tomcat,如果启动成功。并通过访问地址“http://127.0.0.1:8080/”如果访问成功,则表示配置正确。(好吧,开玩笑的。^_^。刚才配置里面已经关闭了http协议连接,所以通过以上地址是不可能访问成功的。如果能访问则表示http connector没有成功关闭)
3.2. 配置apache
3.2.1. 下载mod_jk
先去下载mod_jk,跟apache的版本一致就行:
http://mirrors.tuna.tsinghua.edu.cn/apache//tomcat/tomcat-connectors/jk/binaries/windows/tomcat-connectors-1.2.37-windows-i386-httpd-2.2.x.zip
网上说mod_jk已经过时了。我就不清楚为什么这样说了,因为我在官方下载地址这里看到的最后更新时间都是2012年的。
将压缩包里面的mod_jk.so文件复制到
$apache_base/modules目录下。
3.2.2. 创建workers.properties 文件
在$apache_base/conf目录下新建以下文件,workers.properties。在里面根据服务器配置:
[*]workers.tomcat_home=D:\apache-tomcat-6.0.35
[*]workers.java_home=C:\Program Files\Java\jdk1.6.0_35
[*]
[*]worker.list=a_worker
[*]
[*]worker.a_worker.port=8009
[*]worker.a_worker.host=localhost
[*]worker.a_worker.type=ajp13
[*]worker.a_worker.socket_keepalive=True
如果有多个tomcat,可以在worker.list后面指定多个,只需用,隔开即可。
下面的worker.a_worker是对每一个tomcat服务器的详细配置,可查阅官方文档:http://tomcat.apache.org/connectors-doc/reference/workers.html
3.2.3. 配置httpd.conf 文件
位置:$apache_base/conf/httpd.conf
1、文件最下面加入以下代码,用于让apache能使用mod_jk功能
[*]# 虚拟主机配置
[*]NameVirtualHost *:80
[*]# 加载模块
[*]LoadModule jk_module modules/mod_jk.so
[*]
[*]# 加载worker文件
[*]JkWorkersFile conf/workers.properties
[*]
[*]# 导入虚拟主机文件
[*]Include conf/vhost/www.a.com.conf
页:
[1]