apache + tomcat 集群配置 proxy方式

假设两个tomcat分别安装在192.168.0.203和192.168.0.204,apache安装在192.168.0.205.

假设网站访问域名为www.test.com

假设apache的document路径为/opt/web

1.jre预装的是1.6.0_30-b12

2.apache预装的是2.2

3.tomcat安装6.0.35

tomcat路径/opt/

4.在Apache安装目录下找到conf/httpd.conf文件,以文本编辑器打开。

apache目录路径/etc

1)确保以下内容已添加,以便Apache在启动时自动加载代理(proxy)模块。

LoadModuleproxy_modulemodules/mod_proxy.so

LoadModuleproxy_ajp_modulemodules/mod_proxy_ajp.so

LoadModuleproxy_balancer_modulemodules/mod_proxy_balancer.so

LoadModuleproxy_connect_modulemodules/mod_proxy_connect.so

LoadModuleproxy_ftp_modulemodules/mod_proxy_ftp.so

LoadModuleproxy_http_modulemodules/mod_proxy_http.so

2)NameVirtualHost*:80这句注释去掉,修改为NameVirtualHost192.168.0.205:80

3)在文档最下面加上如下内容:

<VirtualHost192.168.0.203:80>

ServerNamewww.test.com

ServerAlias*.test.com

DocumentRoot/opt/web

DirectoryIndexindex.html

ProxyRequestsOff

<proxybalancer://cluster_test>

BalancerMemberajp://192.168.0.203:8009loadfactor=1route=node_test_203

BalancerMemberajp://192.168.0.204:8009loadfactor=1route=node_test_204

</proxy>

ProxyPassMatch^(/.*\.jsp)$balancer://cluster_test/stickysession=JSESSIONID|jsessionid

ProxyPassMatch^(/.*\.action)$balancer://cluster_test/stickysession=JSESSIONID|jsessionid

ProxyPass/!

ProxyPassReverse/balancer://cluster_test/

ErrorLog"logs/test-error.log"

CustomLog"logs/test-access.log"common

<Directory"/opt/web">

OptionsFollowSymLinks

AllowOverrideNone

Orderallow,deny

Allowfromall

</Directory>

</VirtualHost>

5.打开tomcat安装目录下conf/server.xml文件。

1)修改关闭端口,如果一台服务器上启动多个tomcat实例,必须关闭端口是不一样的,<Serverport="8005"shutdown="SHUTDOWN">。

2)修改tomcat的监听端口,如果一台服务器启动多个tomcat实例,必须修改。

<Connectorport="8080"protocol="HTTP/1.1"

connectionTimeout="20000"

redirectPort="8443"/>

3)修改ajp端口,这里端口设置必须和前面第一步第三小步骤中配置的端口一致。

例如上面BalancerMemberajp://192.168.0.203:8009loadfactor=1route=node_test_203这句,ajp端口是8009

找到如下内容:

<Connectorport="8009"protocol="AJP/1.3"redirectPort="8443"/>

4)修改引擎路径

找到如下内容:

<Enginename="Catalina"defaultHost="localhost">

192.168.0.203的服务器上修改为:

<Enginename="Catalina"defaultHost="localhost"jvmRoute="node_test_203">

192.168.0.204上修改为:

<Enginename="Catalina"defaultHost="localhost"jvmRoute="node_test_204">

jvmRoute的值和前面第一步第三步骤中route值对应。

碰到问题:

(13)Permissiondenied:proxy:AJP:attempttoconnectto192.168.0.250:9002(192.168.0.250)failed

原因:SELinuxonRHEL/CentOSbydefaultshipssothathttpdprocessescannotinitiateoutboundconnections

解决:/usr/sbin/setsebool-Phttpd_can_network_connect1

相关推荐