Apache整合tomcat
由于tomcat在处理静态数据的时候, 效果不是很理想, 所以最好是用apache或者nginx等来处理静态数据, 把动态数据送给tomcat来处理. 后续会讲到如何使用apache来做balance, 这里使用单balance来做集成.
环境:
Jdk 5.0 / Apache 2.2 / Tomcat 6.0
整合方法:
只需将在conf/httpd.conf文件中将相关被注释掉的配置语句释放即可
需要释放的配置如下:
在conf/httpd.conf文件最下面加入如下配置
ProxyRequests Off
<proxy balancer://cluster>
BalancerMember ajp://127.0.0.1:8009 loadfactor=1 route=jvm1 </proxy>
需要说明的是Apache在与Tomcat整合时允许进行集群配置cluster, 但本处不进行集群配置, 因此只需按照如上所述进行配
这个地方需要特别说明: apache的负载均衡是通过tomcat的ajp作为桥梁连接起来的, 所以, 在BalancerMember这个地方的配置一定要和tomcat中的配置一致.
打开虚拟服务器的配置
在conf/httpd.conf文件找到这句语句:
#Include conf/extra/httpd-vhosts.conf
将其注释释放.
相关的虚拟服务器的配置将在conf/extra/httpd-vhosts.conf文件中进行设置
所谓的虚拟服务器: 比如在balance的时候, 2台tomcat, 但是在apache这边, 看起来就是一台虚拟服务器.
加入jsp文件支持
在conf/httpd.conf文件找到这句语句
<IfModule dir_module>
DirectoryIndex index.html
</IfModule>
将其改为如下
<IfModule dir_module>
DirectoryIndex index.html index.jsp
</IfModule>
修改conf/extra/httpd-vhosts.conf文件配置虚拟服务器
在文件最后加入如下配置
<VirtualHost *:80>
ServerAdmin webmaster@dummy-host3.steel.com
ServerName localhost
ServerAlias localhost
ProxyPass /images !
ProxyPass /css !
ProxyPass /js !
ProxyPass / balancer://cluster/ stickysession=jsessionid nofailover=On
ProxyPassReverse / balancer://cluster/
</VirtualHost>
以上, apache方面配置完成.
Tomcat配置:
Tomcat只需要修改tomcat/conf/server.conf就可以了.
修改Engine配置:
找到下面这句语句
<Engine name="Catalina" defaultHost="localhost">
将其修改为如下
<Engine name="Standalone" defaultHost="localhost" jvmRoute="jvm1">
注意 这个地方的jvmRoute的名字一定要和apache中的配置中一致.
修改/确认Connector配置
检查文件中对Connector端口8009配置是否如下
若不是, 请修改之。
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
注意: 这里面的端口8009一定要和apache中的配置 一致.
测试:
在浏览器中输入:
如果能够看到tomcat的小猫猫页面, 说明成功.