一黑忱、前言
? ? ? 1. Apache是Web服務器,它支持靜態(tài)頁面凡傅,有很好的靜態(tài)頁面處理能力寄悯;Tomcat是應用(Java)服務器,它支持動態(tài)頁面(例如Servlet艰争,JSP)坏瞄。一般在使用Apache + Tomcat的配置下,Apache都是實現(xiàn)對JSP的轉(zhuǎn)發(fā)甩卓,交給Tomcat來處理鸠匀,兩者搭配可以支持靜態(tài)和動態(tài)頁面。
? ? ? ? 2. Tomcat逾柿,它只是一個servlet容器缀棍,是Apache的擴展,但可以獨立于Apache運行机错;如果以獨立方式運行爬范,功能與Apache等效,但對靜態(tài)頁面的處理不太理想弱匪。
? ? ? 3. 為了提高整個系統(tǒng)的可用性和性能青瀑,常常會用到負載均衡,而Apache和Tomcat經(jīng)常聯(lián)合在一起來實現(xiàn)負載均衡技術(shù)萧诫。
? ? ? ? ? ?①.保證多臺Tomcat服務器之間會話的同步斥难,確保任何一臺當機都不會影響系統(tǒng)的運行,從而提高系統(tǒng)的可用性帘饶。
? ? ? ? ? ? ②.在負責負載平衡的Apache主機上記錄每個請求的Session ID(這個ID是由Tomcat分配的)及回應Session的Tomcat Server對應關(guān)系哑诊,在下一個請求到來時先判斷每個Session ID,如果有標識連接已經(jīng)建立及刻,那么轉(zhuǎn)到對應服務器镀裤;負責就是新的連接竞阐,根據(jù)每個后臺Tomcat服務器的狀態(tài)分配一個服務器并記錄Session ID.
二、Apache + Tomcat 組合配置
? ? ? 1. 通訊方式
? ? ? ? ? ?Apache和Tomcat之間的通訊基本有三種方式(Mod_Jk暑劝、HTTP_Proxy和AJP_Proxy)骆莹,由于當前流行方式且官方文檔非常全的為Mod_Jk,所以本文中采用的為Mod_Jk方式(具體介紹可自行百度铃岔,本文不做具體介紹)
? ? 2.配置步驟安裝
? ? ? ? ? ①. 安裝Apache HTTP服務器汪疮,從Apache官方網(wǎng)站下載峭火,我安裝的是apache_httpd-2.4.18
? ? ? ? ? ②. 安裝Apache Tomcat毁习,可以安裝在Apache同一個機器,也可以在其他的機器
? ? ? ? ? ③. Mod_Jk配置
? ? ? ? ? ? ? Ⅰ.下載Mod_Jk.so將其放置到目錄Apache/Modules下
? ? ? ? ? ? ? Ⅱ.修改httpd.conf卖丸,增加一行:Include conf/mod_jk.conf
? ? ? ? ? ? ? Ⅲ.在conf目錄下新建Mod_jk.conf文件纺且,內(nèi)容為:
#Load mod_jk module.
LoadModule jk_module modules/mod_jk.so
#Where to find workers.properties
JkWorkersFile conf/workersOne.properties
JkMountFile conf/workersTwo.properties
#Where to put jk logs
JkLogFile logs/mod_jk.log
#Set the jk log level[debug/error/info]
JkLogLevel info
#Select the log format
JkLogStampFormat "[%a %b %d %H:%M:%S %Y]"
#JkRequestLogFormat set the request format
JkRequestLogFormat "%w %V %T"
JkMount /* loadbalancer?
? ? ? ? ? ? ? ? Ⅳ.? 在conf目錄下新建workersOne.properties文件,內(nèi)容為:
#worker.list=loadbalancer
worker.list=loadbalancer,tomcat1,tomcat2 ?#server列表
#define the first node
worker.tomcat1.port=8009
worker.tomcat1.host=127.0.0.1
worker.tomcat1.type=ajp13
worker.tomcat1.lbfactor=1
#define the first node
worker.tomcat2.port=8009
worker.tomcat2.host=127.0.0.1
worker.tomcat2.type=ajp13
worker.tomcat2.lbfactor=1
#Now we define the load-balancing behavior
worker.loadbalancer.type=lb
worker.loadbalancer.balance_workers=tomcat1, tomcat2
worker.loadbalancer.sticky_session=true
worker.loadbalancer.sticky_session_force=true
? ? ? ? ? ? ? ? Ⅴ.在conf目錄下新建workersTwo.properties文件稍浆,內(nèi)容為:
!/*.htm=loadbalancer