apache + tomcat 集群配备 proxy方式

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)模块。

LoadModule proxy_module modules/mod_proxy.so 

LoadModule proxy_ajp_module modules/mod_proxy_ajp.so 

LoadModule proxy_balancer_module modules/mod_proxy_balancer.so 

LoadModule proxy_connect_module modules/mod_proxy_connect.so 

LoadModule proxy_ftp_module modules/mod_proxy_ftp.so 

LoadModule proxy_http_module modules/mod_proxy_http.so

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

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

<VirtualHost 192.168.0.203:80>

    ServerName www.test.com

    ServerAlias *.test.com

    DocumentRoot /opt/web

    DirectoryIndex index.html

    ProxyRequests Off

    <proxy balancer://cluster_test>  

      BalancerMember ajp://192.168.0.203:8009 loadfactor=1 route=node_test_203

      BalancerMember ajp://192.168.0.204:8009 loadfactor=1 route=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”>

      Options FollowSymLinks

      AllowOverride None

      Order allow,deny

      Allow from all

    </Directory>

</VirtualHost>

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

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

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

<Connector port=”8080″ protocol=”HTTP/1.1″

               connectionTimeout=”20000″

               redirectPort=”8443″ />

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

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

找到如下内容:

<Connector port=”8009″ protocol=”AJP/1.3″ redirectPort=”8443″ />

4) 修改引擎路径

找到如下内容:

<Engine name=”Catalina” defaultHost=”localhost”>

192.168.0.203的服务器上修改为:

<Engine name=”Catalina” defaultHost=”localhost” jvmRoute=”node_test_203″>

192.168.0.204上修改为:

<Engine name=”Catalina” defaultHost=”localhost” jvmRoute=”node_test_204″>

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

碰到问题:

(13)Permission denied: proxy: AJP: attempt to connect to 192.168.0.250:9002 (192.168.0.250) failed

原因:SELinux on RHEL/CentOS by default ships so that httpd processes cannot initiate outbound connections

解决:/usr/sbin/setsebool -P httpd_can_network_connect 1

apache + tomcat 集群配备 proxy方式

相关文章:

你感兴趣的文章:

标签云: