二。參考:
三。環境:多臺伺服器。
四。安裝。
主機a:apache,tomcata,ip:192.168.1.20 ,apache埠80,tomcat埠8080
主機b tomcatb,ip:192.168.1.21,埠80
主機c tomcatc,ip:192.168.1.22,埠80
五。配置apache。
當然你也可以放在httpd.conf檔案最後面,隨大家愛好。。。,然後在http.conf最後面加入這幾行
這個workers.properties和uriworkermap.properties名字隨便取,但是字尾名要是properties。mod_jk.log同樣也可以隨便取名字,這個檔案就是寫日誌的。jkloglevel 日誌等級,warn以上的都會寫入日誌,而這些檔案將會放在根目錄下的conf資料夾下。
workers.properties就是負責負載均衡的。而uriworkermap.properties則是設定哪些檔案由apache處理,哪些檔案由tomcat處理。
在conf資料夾下新建剛才說的workers.properties。在裡面寫:
其中port為tomcat下server.xml裡的 對應埠。host值為對應主機,這裡不要擔心其他主機tomcat不為8080等其他埠,apache是通過ajp埠找到對應tomcat的。type的值為固定ajp13,這個值不能修改哦。lbfactor 的值就是均衡時apache訪問tomcat的概率,如果3個tomcat的值都相等,那麼服務設定了負載均衡的話,就會平均分發給各個tomcat,。controller下面就是負載均衡器了。type=lb表示負載均衡,balanced_workers表示指定哪些tomcat負載均衡,retries的值我現在還不明白什麼意思。sticky_session=false 表示進行session複製,為true表示session不復制。詳細見上面給的參考
接著在conf資料夾下新建uriworkermap.properties。在裡面寫下:
status是剛才workers.properties檔案中配置的,意思是由tomcat進行處理。哪些由tomcat處理呢?除了下面那些字尾的檔案外,其他的都由tomcat處理,相信大家這時候都知道後面哪些由誰處理了,對,就是apache。當然你也可以增加其他型別檔案由apache處理。
另:如果tomcatb下面有其他jsp應用的話,那麼server.xml就要這樣配置了:
localhost這個值請不要域名錶示,因為apache是通過ip找到對應專案的。當然下面的"其他應用"可以使用域名錶示。並不影響。
就這樣apache就配置完了,接著是配置tomcat。
六。配置tomcat。
在每個tomcat的server.xml檔案中,修改以下資訊:
找到類似這樣的:,預設tomcat把這個給註釋掉了,去掉註釋,jvmroute裡面的值就是workers.properties中設定的tomcata,tomcatb,tomcatc。然後在該標籤內新增以下資訊:
還有一點,就是如果3個tomat都是放在同一臺電腦上的話,ajp埠要設定不同,還有
找到這裡,埠4000也要設定不同。。。。
這樣,叢集就配置好了,當然這個叢集只是實現了其中的一種方式,就是第一次請求某個tomcat,後續的請求都會由這個tomcat進行處理。當然,這裡session沒有進行復制了。
如果想進行session複製,那麼要修改workers.properties:worker.dlog4j.sticky_session=false。
還要在專案中的web.xml檔案下加上:
最後一點就是修改server.xml,在 標籤下加上:
我就是沒有加上這點,其他都設定好了,導致session無法複製。將以下這行註釋掉:
改為:這個mapsendoptions的值也有特殊含義,好像tomcat文件有講解吧...
額,似乎就這些配置了,session可以複製了。但是我要說的是,這個session是可以複製,但也就是當session在建立或者消費的時候會進行復制,如果session進行更新操作,將無法複製。當然,也許是我少配置**了,如果誰這樣配置了session更新了還可以複製的話,還希望在下面留個言,謝謝!在tomcat官網看到,
這個就是提供session複製的介面,不過tomcat6.0版本好像還沒實現這個介面,導致session不能真正意義上覆制了。
Apache Tomcat的整合與負載均衡
參考文件 環境 centos5 8 64bit 安裝apache 這裡我選擇了yum 方式安裝 yum install httpd http...