隨筆-20  評論-2  文章-0  trackbacks-0
          隨著訪問量的不斷提高,以及對響應速度的要求,進行負載均衡設置就顯得非常必要了。公司的系統在最初設計的時候就已經考慮到了負載均衡的規劃,www靜態 服務器配置了兩臺,由于初期項目時間緊,并且訪問量并不高,所以當時只用了一臺,另一臺在內網中,只是進行了同步,并為發揮出效用來。此次就是對負載均衡 的一個簡單測試。
                 先介紹一下apache mod_proxy_balancer的幾個配置規則(從網上找的):
          將Apache作為LoadBalance前置機分別有三種不同的部署方式,分別是:

          1 )輪詢均衡策略的配置

          進入Apache的conf目錄,打開httpd.conf文件,在文件的末尾加入:
          ProxyPass / balancer://proxy/         #注意這里以"/"結尾
          <Proxy balancer://proxy> 
                 BalancerMember http://192.168.6.37:6888/ 
                 BalancerMember http://192.168.6.38:6888/
          </Proxy> 
                我們來觀察上述的參數“ProxyPass / balancer://proxy/”,其中,“ProxyPass”是配置虛擬服務器的命令,“/”代表發送Web請求的URL前綴,如:http://myserver/或者http://myserver/aaa,這些URL都將符合上述過濾條件;“balancer://proxy/”表示要配置負載均衡,proxy代表負載均衡名;BalancerMember 及其后面的URL表示要配置的后臺服務器,其中URL為后臺服務器請求時的URL。以上面的配置為例,實現負載均衡的原理如下: 
                假設Apache接收到http://localhost/aaa請求,由于該請求滿足ProxyPass條件(其URL前綴為“/”),該請求會被分發到后臺某一個BalancerMember,譬如,該請求可能會轉發到 http://192.168.6.37:6888/aaa進行處理。當第二個滿足條件的URL請求過來時,該請求可能會被分發到另外一臺BalancerMember,譬如,可能會轉發到http://192.168.6.38:6888/。如此循環反復,便實現了負載均衡的機制。

          2) 按權重分配均衡策略的配置

          ProxyPass / balancer://proxy/         #注意這里以"/"結尾

          <Proxy balancer://proxy> 
                  BalancerMember http://192.168.6.37:6888/  loadfactor=3 
                  BalancerMember http://192.168.6.38:6888/  loadfactor=1
          </Proxy> 
                參數”loadfactor”表示后臺服務器負載到由Apache發送請求的權值,該值默認為1,可以將該值設置為1到100之間的任何值。以上面的配置 為例,介紹如何實現按權重分配的負載均衡,現假設Apache收到http://myserver/aaa 4次這樣的請求,該請求分別被負載到后臺服務器,則有3次連續的這樣請求被負載到BalancerMember為http://192.168.6.37:6888的服務器,有1次這樣的請求被負載BalancerMember為http://192.168.6.38:6888后臺服務器。實現了按照權重連續分配的均衡策略。

          3) 權重請求響應負載均衡策略的配置

          ProxyPass / balancer://proxy/ lbmethod=bytraffic  #注意這里以"/"結尾

          <Proxy balancer://proxy> 
                   BalancerMember http://192.168.6.37:6888/  loadfactor=3 
                   BalancerMember http://192.168.6.38:6888/  loadfactor=1 
           </Proxy> 
                 參數“lbmethod=bytraffic”表示后臺服務器負載請求和響應的字節數,處理字節數的多少是以權值的方式來表示的。 “loadfactor”表示后臺服務器處理負載請求和響應字節數的權值,該值默認為1,可以將該值設置在1到100的任何值。根據以上配置是這么進行均 衡負載的,假設Apache接收到http://myserver/aaa請求,將請求轉發給后臺服務器,如果BalancerMember為http://192.168.6.37:6888后臺服務器負載到這個請求,那么它處理請求和響應的字節數是BalancerMember為http://192.168.6.38:6888 服務器的3倍(回想(2)均衡配置,(2)是以請求數作為權重負載均衡的,(3)是以流量為權重負載均衡的,這是最大的區別)。

          看明白了沒有,根據不同的需要,可以按這三種方式進行配置。我按照第三種配置的,感覺上這種對于負載的均衡更全面合理。我的配置很簡單,如下:
          先配置均衡器:
          <Proxy balancer://proxy>
                 BalancerMember ajp://127.0.0.1:8009/  loadfactor=1
                 BalancerMember http://192.168.10.6:8083/  loadfactor=1
          </Proxy>
          其中http://192.168.10.6:8083實際上是另外一個端口啟動的apache,為了測試,它就簡單的直接轉發所有請求到tomcat。
          對于上次的VirtualHost進行以下的修改即可:
          <VirtualHost *:80>
                  ServerName www.test.com
                  DocumentRoot /www
                  DirectoryIndex index.html index.jsp
                  <Directory "/www">
                      Options Indexes FollowSymLinks
                      AllowOverride None
                      Order allow,deny
                      Allow from all
                  </Directory>
                  <Directory "/control">
                      Options Indexes FollowSymLinks
                      AllowOverride None
                      Order allow,deny
                      Allow from all
                  </Directory>
                  ProxyPass /nxt/images/ !
                  ProxyPass /nxt/js/ !
                  ProxyPass /nxt/css/ !
                  #ProxyPass / ajp://127.0.0.1:8009/
                  #ProxyPassReverse / ajp://127.0.0.1:8009/
                  ProxyPass / balancer://proxy/
                  ProxyPassReverse / balancer://proxy/
          </VirtualHost>
          注釋掉之前的ajp轉發,而配置成通過balancer去處理。
          通過觀察access log,的確有部分請求發送到了8083端口的apache上,而有部分是直接ajp轉發到tomcat上了。對于更多的負載均衡的參數檢測,待空了再做。


          文章來源:http://blog.163.com/ccbobo_cat/blog/static/32099462200932611555639
          posted on 2009-04-26 11:56 C.B.K 閱讀(151) 評論(0)  編輯  收藏

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 财经| 堆龙德庆县| 芜湖市| 台前县| 即墨市| 达州市| 阆中市| 临漳县| 连平县| 兴海县| 保定市| 松阳县| 新蔡县| 石河子市| 宜都市| 大悟县| 会理县| 兴仁县| 泸州市| 田林县| 湘乡市| 衡南县| 邵武市| 宜兴市| 德清县| 临漳县| 渝中区| 安仁县| 北宁市| 通海县| 宁化县| 盐池县| 凤山县| 乌兰县| 衡山县| 仪陇县| 鄂伦春自治旗| 高淳县| 宜丰县| 广宁县| 县级市|