Apache HttpServer與Tomcat的整合見上篇:
http://blog.csdn.net/supercrsky/article/details/8295023
一.配置Tomcat
這裡用兩個tomcat,直接在已安裝目錄再複製一個,命名為tomcat2。
#cp -r /opt/tomcat/ tomcat2
進入tomcat2目錄,編輯 conf/server.xml,修改預設連接埠。
#vi conf/server.xml
1. 將
<Server port="8005" shutdown="SHUTDOWN">
改成
<Server port="9005" shutdown="SHUTDOWN">
2.將
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
修改成:
<Connector port="9090" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="9443" />
3. 找到:
<Engine name="Catalina" defaultHost="localhost">
改成
<Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat1">
同時把tomcat2中此處內容改成
<Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat2">
4.找到
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
改成
<Connector port="9009" protocol="AJP/1.3" redirectPort="8443" />
5.找到
<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster" />
把注釋取消掉。
二.配置HTTP Server
1.檢查是否啟動了https,確保下面這句已經被注釋。
#Include conf/extra/httpd-ssl.conf
2.找到我們在最檔案最下面添加的VirtualHost節點,將其更改為:
<VirtualHost *>DocumentRoot /usr/local/www/<Directory "/usr/local/www/composite"> AllowOverride None Order allow,deny Allow from all</Directory><Directory "/usr/local/www/composite/WEB-INF"> Order deny,allow Deny from all</Directory>ServerAdmin localhostDocumentRoot /usr/local/www/ServerName localhostDirectoryIndex index.html index.htm index.jsp index.actionErrorLog logs/shsc-error_log.txtCustomLog logs/shsc-access_log.txt commonJkMount /*WEB-INF controllerJkMount /*j_spring_security_check controllerJkMount /*.action controllerJkMount /servlet/* controllerJkMount /*.jsp controllerJkMount /*.do controller</VirtualHost>
4. 編輯conf/workers.properties將內容修改為:
worker.list = controller#tomcat1worker.tomcat1.port=8009 worker.tomcat1.host=localhostworker.tomcat1.type=ajp13worker.tomcat1.lbfactor=1#tomcat2worker.tomcat2.port=9009 worker.tomcat2.host=localhostworker.tomcat2.type=ajp13worker.tomcat2.lbfactor=1#========controller========worker.controller.type=lbworker.controller.balance_workers=tomcat1,tomcat2worker.lbcontroller.sticky_session=0worker.controller.sticky_session_force=trueworker.connection_pool_size=3000worker.connection_pool_minsize=50worker.connection_pool_timeout=50000
這句非常重要worker.list = controller,如果不加httpd會無法啟動,查看日誌報錯:
Could not find a worker for worker name=controller
如果是橫向叢集,將worker.tomcat1.host或worker.tomcat2.host更改為對應的機器IP即可。
三.部署並測試
確保項目裡的WEB-INF/web.xml檔案,在</web-app>之前加入了
<distributable/>
將工程分別部署到/usr/local/www,/opt/tomcat/webapps,/opt/tomcat2/webapps
分別啟動tomcat1和tomcat2,順序無所謂,最後啟動HTTP Server
#/opt/tomcat/bin/startup.sh
#/opt/tomcat2/bin/startup.sh
#/usr/local/httpd2.2/bin/apachectl start
啟兩個Firefox,分別訪問我們的工程,這裡是:http://localhost/composite
觀察/opt/tomcat/logs/與/opt/tomcat2/logs/下對應的日誌,
我們發現tomcat1和tomcat2已經分別處理了一個用戶端請求。