Apache負載平衡會話黏貼配置(JK模式)

來源:互聯網
上載者:User

Apache負載平衡會話黏貼配置(JK模式)

在工作中,由於其他產品與Apache的反向 Proxy模式工作的不太好,所以需要把Apache與應用伺服器(Tomcat)的協同配置長mod_jk方式下的會話黏貼模式,在配置過程中,還是遇到了一些問題,主要是忘了修改Tomcat/conf/server.xml中的jvmRoute的名稱,導致會話黏貼一直不成功。下面以配置Apache與應用“app”整合為例,說明Apache如何與IP為“192.168.3.119”和“192.168.3.116”兩台機器上app應用協同的。

1.1  Apache與JK設定1.1.1  開啟mod_jk模組並攔截app請求

開啟apache安裝目錄下的conf/httd.conf檔案,在檔案末尾增加上如下代碼(如果以前用過其他方式配置apache與該app的整合,需要去掉相關配置;如果沒有,則直接加上下面的配置)。這裡apache的配置連接埠是81,apache預設配置連接埠是80,在實際使用中需要替換為apache的監聽連接埠。

此樣本中配置了對所有的webpic應用的請求,webpic應用的地址需要替換為實際的地址(這個是一個圖片的擷取應用,如果沒有圖片擷取,則可以去掉webpic的配置)。下面的紅色字型部分是需要注意的地方,如下:

      

#載入mod_jk Module

LoadModule jk_module modules/mod_jk.so

#指定appbalancer_jk.properties檔案路徑。

#如果apache的conf目錄下沒有該設定檔,則建立。內容見下節

JkWorkersFile conf/appbalancer_jk.properties

<VirtualHost    *:81>

      

       AddType text/javascript .js

       AddType text/css; .css

       AddType text/html;charset=UTF-8 .html

       ServerName
my.app.com

       ServerAdmin test@sina.com.cn

 

       #webpic,Request static resources.

       Alias /webpic "D:\APPV7005\WCMData\webpic"

       <Directory "D:\APPV7005\WCMData\webpic">

              Options -Indexes MultiViews    FollowSymLinks Includes

              AllowOverride None

              Order allow,deny

              Allow from all

       </Directory>

      

       #指定那些請求交給tomcat處理

       JkMount /app/services appbalance

       JkMount /app/*.* appbalancer

       JkMount /*.do appbalancer

       JkMount /app appbalancer

       JkMount /app/ appbalancer

       JkMount /app/sd appbalancer

</VirtualHost>

                            

 

如果apache在編譯時間沒有編譯mod_jk.so模組,則可以進入apache官方網站進行下載,mod_jk下載的地址如下:

http://archive.apache.org/dist/tomcat/tomcat-connectors/jk/binaries/

進入網址後,根據自己apache所安裝的作業系統進行下載,如果是linux系統,則點擊linux連結,根據apache的版本選擇相應的mod_jk.so檔案進行下載。

1.1.2  設定appbalancer_jk.properties檔案

開啟conf目錄下的“appbalancer_jk.properties”檔案(如果該檔案不存在,則建立該檔案),在檔案中填入如下內容。我們只要替換該檔案中的ip地址和連接埠號碼為app應用的實際ip地址和ajp通訊連接埠即可。紅色字型部分是我們需要替換的地方,如下表。m119和m116分別是APP應用伺服器的jvmRoute名稱,見下節配置。

      

#server 列表.mxxx是節點的名字,有多少個節點就設定幾個

worker.list=appbalancer,m119,m116

 

#ajp13 連接埠號碼,在tomcat下server.xml配置,預設8009

#tomcat的主機地址,如不為本機,請填寫ip地址

#server的加權比重,值越高,分得的請求越多。

#可以將主節點的比重設定為小一點的值

#========m119========

worker.m119.port=8009

worker.m119.host=192.168.3.119

worker.m119.type=ajp13

worker.m119.lbfactor=2

#========m116========

worker.m116.port=8009

worker.m116.host=192.168.3.116

worker.m116.type=ajp13

worker.m116.lbfactor=3

 

#========appbalancer,負載平衡控制器========

worker.appbalancer.type=lb

worker.appbalancer.balance_workers=m119,m116

worker.appbalancer.sticky_session=true

1.1.3  修改Tomcat的Server.xml

這裡以APP內建的應用伺服器Tomcat為例,開啟Tomcat/conf/server.xml檔案,找到下面的配置,增加上下面的紅色子圖地區。jvmRoute需要與“appbalancer_jk.properties”檔案中的worker名稱一致。

      

<!--    Define the top level container in our container hierarchy -->

<Engine    name="Catalina" defaultHost="localhost"
jvmRoute="m116">

這裡需要注意的是,“m116”需要根據實際情況填寫,通常命名的格式是“m”加上知識庫所在的IP地址。如IP為“192.168.3.116”,則jvmRoute可以命名為“m116”。統一命名,方便管理。

注意:

本章節以兩個APP節點為例,需要分別開啟兩個APP的Tomcat/conf/server.xml檔案,jvmRoute分別設定為“m116”和“m119”,每個APP的jvmRoute名稱是不能相同的。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.