apache tomcat 負載均衡

2021-08-26 22:24:08 字數 1979 閱讀 3781

這幾天試驗apache2.2 + tomcat6做負載均衡,被折磨的死去活來,查閱網上無數文章,無效,最終以巧合解決問題,主要是兩點:

1、 必須使用ajp協議,千萬不要用http協議,否則會出現莫名其妙的問題,有些應用是好的,有些應用粘不住session

2、proxypass / balancer://loadbalancer/ stickysession=jsessionid nofailover=on ,

絕對不能寫 jsessionid|jsessionid 這樣的通吃形式,寫了就是自找苦吃。用chrome檢視head,發現是用大寫的jsessionid

apache+tomcat做負載均衡,在節點間不複製session的情況下,是靠apache的stickysession

不建議用tomcat的session複製能力,效能很受影響。

apache的stickysession是指,apache會記住jsessionid,當jsessionid不變的情況下,apache會一直將這些請求**到同乙個tomcat上,因此不存在session在節點間複製的問題。

步驟很簡單:

1、修改apache的httpd.conf,取消以下幾行的注釋

2、修改httpd-vhosts.conf

serveradmin [email protected]

servername localhost

serveralias localhost

balancermember ajp: loadfactor=1 route=jvm8010

balancermember ajp: loadfactor=1 route=jvm8011

proxypass / balancer://loadbalancer/ stickysession=jsessionid  nofailover=on

proxypassreverse / balancer://loadbalancer/

3、修改tomcat的server.xml,加入這句

4、可以通過小技巧,在乙個tomcat下配置多個server.xml, 用乙個總的批處理檔案,一次啟動多個tomcat例項,見附件

6、如果在apache的httpd.conf的尾部加入以下配置,就可以在指定的機器上(192.168.9.111),通過訪問

來監控負載均衡的情況,並動態調整loadfactor

(如果分別配置loadfactor=5  loadfactor=3,表示負載均衡的訪問次數為,5:3)

#警告:以下這段配置僅用於除錯,絕不要新增到生產環境中!!!  

sethandler balancer-manager  

order deny,allow  

deny from all  

allow from 192.168.9.111  

7、如果在同一臺機器上,同時部署多個不同的tomcat例項,記得修改server.xml裡面的多種埠

同時,catalina.bat中有jmx埠的配置,如果開啟jmx監控,這個埠也不能重複

如:-dcom.sun.management.jmxremote.port="9005" 

apache tomcat負載均衡

最近tomcat總是記憶體溢位,於是就多看了一些tomcat的文章,今天恰好也看到了一篇關於tomcat負載均衡的東西 就好奇的配置了一下,感覺很爽,過程中出現了一些問題,做以下簡單的總結 說一下自己簡單的理解,負載均衡就是分擔以下一台伺服器上面的應用的負載,減輕伺服器的壓力,我看到的最簡單的效果就...

apache tomcat 負載均衡

其實無論是分布式,資料快取,還是負載均衡,無非就是改善 的效能瓶頸,在 原始碼不做優化的情況下,負載均衡可以說 是最直接的手段了。其實拋開這個名詞,放開了說,就是希望使用者能夠分流,也就是說把所有使用者的訪問壓力分散到多台伺服器上,也可以 分散到多個tomcat裡,如果一台伺服器裝多個tomcat,...

apache tomcat 負載均衡

需要準備的環境 apache2.2 apache mod jk模組 自帶 tomcat6.0 apache端配置 conf httpd.conf中最後一行引用jk的配置檔案 include mod jk.conf mod jk.conf中的內容,載入了mod jk的庫檔案,指定了worker的配置檔...