偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

緩存角度的Apache負(fù)載均衡

網(wǎng)絡(luò) 網(wǎng)絡(luò)優(yōu)化 網(wǎng)絡(luò)運維
本文對apache負(fù)載均衡,基于反向代理的配置進(jìn)行了詳細(xì)的介紹。文章之初,我們給出的是網(wǎng)上的一般攻略,之后又做了修改,供大家參考。

Apache負(fù)載均很設(shè)置很多情況下都是根據(jù)tomacat來完成的,現(xiàn)在這片文章介紹的是關(guān)于反向代理實現(xiàn)apache負(fù)載均衡的配置過程,首先我們來參考一下前人的操作過程,根據(jù)那個方案來修改我們的實際操作。

下基于反向代理實現(xiàn)Apache負(fù)載均衡

初步設(shè)想:

考慮到對不同的 App Server 而言, 實現(xiàn) Session 復(fù)制的配置各不相同(通常是需要配置集群), 因此從通用的角度, 覺得使用 session sticky 方式實現(xiàn)的負(fù)載均衡比較方便(沒有看到有資料說 lighttpd 能夠?qū)崿F(xiàn) session sticky, 所以決定使用 Apache 試試)

環(huán)境準(zhǔn)備:

1、下載安裝 Apache(不多廢話了)

2、準(zhǔn)備兩個運行同樣程序的 Web 服務(wù)器,這里使用的是 Tomcat 5.5, 并使用一個 jsp 文件作為測試文件

3、下載安裝 JMeter ( jakarta-jmeter-2.2), 用于壓力測試, 驗證apache負(fù)載均衡的效果

測試jsp文件說明:

1、顯示當(dāng)前運行的服務(wù)器的 IP 地址及端口號, 這樣從返回的頁面就能夠知道是運行在哪一個 Web 服務(wù)器上的了

2、統(tǒng)計每個客戶端(不同的 session)向同一臺服務(wù)器發(fā)出請求的次數(shù), 通過這個計數(shù)可以驗證是否實現(xiàn)了 session sticky

3、通過 clear 請求參數(shù)(即 .../test.jsp?clear=1)清除請求次數(shù)的計數(shù)結(jié)果, 以便進(jìn)行下一次測試

4、模擬 JSESSIONID +jvmRoute 的機(jī)制, 自行實現(xiàn)了一個 STICK_PORT_TOKEN 的 Cookie, 直接使用不同服務(wù)器的 HTTP 端口號作為 route#p#

Apache負(fù)載均衡配置:

簡單的反向代理

  1. ProxyRequests Off  
  2. <Proxy *> 
  3. Order deny,allow  
  4. Allow from all  
  5. </Proxy> 
  6. ProxyPass /1 http://localhost:8080/test  
  7. #ProxyPassReverse /1 http://localhost:8080/test  
  8. ProxyPass /2 http://localhost:18080/test  
  9. #ProxyPassReverse /2 http://localhost:18080/test  
  10. # 2)非 stickysession 的 balance  
  11. ProxyPass /3 balancer://non-sticky-cluster nofailover=On 
  12. <Proxy balancer://non-sticky-cluster> 
  13. BalancerMember http://localhost:8080/test  
  14. BalancerMember http://localhost:18080/test smax=10 
  15. </Proxy> 
  16. # 3)stickysession 的 balance  
  17. ProxyPass /4 balancer://sticky-cluster stickysession=STICK_PORT_TOKEN nofailover=On 
  18. <Proxy balancer://sticky-cluster> 
  19. BalancerMember http://localhost:8080/test route=8080 
  20. BalancerMember http://localhost:18080/test route=18080 loadfactor=2 
  21. </Proxy> 


這個配置分為3個部分, 包括了 1)簡單的反向代理, 2)非 session sticky 的 load balance, 以及 3)session sticky 的 load balance 三種方式的配置(這里假設(shè)兩個 Tomcat 服務(wù)器的 HTTP 服務(wù)被配置在 8080 和 18080 端口), 其中第 2) 和 3) 的配置中 "nofailover=On" 適合于沒有 session 復(fù)制的情況下, 這種情況下, 如果其中一臺 HTTP 服務(wù)器出錯, 那么原來分配在這個出錯機(jī)器上的瀏覽器客戶端不會被自動轉(zhuǎn)移到另外的服務(wù)器上, 必須重新啟動瀏覽器才能將請求分配到另外一臺服務(wù)器上去.#p#

使用 JMeter 測試結(jié)果:

使用 JMeter 對 "3)session sticky 的 load balance" 的效果進(jìn)行測試, 通過壓力測試的方式, 檢查兩臺 Tomcat 服務(wù)器被分配到的請求數(shù)量(注意如果重復(fù)測試, 在下一次測試開始之前請對每個 Tomcat 服務(wù)器執(zhí)行 .../test.jsp?clear=1 的請求, 清除上一次的計數(shù)結(jié)果).

從測試結(jié)果可見: 50個線程中有21個被分配在 8080 端口的服務(wù)器上, 29個則被分配到 18080 端口的服務(wù)器; 另外, 所有的 session 請求次數(shù)都是 20 次, 說明 session sticky 達(dá)到了預(yù)期的效果.

補(bǔ)充一下對 PHP 的 session sticky 配置問題:

對于使用 PHP 的朋友可能會在這里遇到一些問題,也許是因為 Apache 文檔的誤導(dǎo),大家可能會照著上面的例子把 JSESSIONID 換為 PHPSESSID,但是這樣是不行的!如果你有時間看看代碼 modules/proxy/mod_proxy_balancer.c lines 195 to 210 也許你會發(fā)現(xiàn)一些問題,Apache 實際上在找一個類似于“balancer.www1"的 SESSIONID,我們可以配置 TOMCAT 來實現(xiàn)這種形式的 SESSIONID 但是 PHP 卻沒有這個功能。但是,幸好我們能通過 Apache 的 Rewrite 功能來做這個事情。

首先,假設(shè)我們后臺有兩臺機(jī)器 www1.james.com 和 www2.james.com 我們先為他們配置 VirtualHost :

  1. RewriteEngine on  
  2. RewriteRule .* - [CO=BALANCEID:balancer.www{1或者2}:.james.com] 

然后,我們在前臺做apache負(fù)載均衡的機(jī)器上(假設(shè)為www.james.com)配置如下:

  1. ProxyPass /bt balancer://sticky-cluster lbmethod=byrequests stickysession=BALANCEID nofailover=On 
  2. ProxyPassReverse /bt balancer://sticky-cluster  
  3. <Proxy balancer://sticky-cluster> 
  4. BalancerMember http://www2.james.com/6d/session_test.php route=www2 
  5. BalancerMember http://www1.james.com/session_test.php route=www1 
  6. </Proxy> 

重啟 Apache 大功告成,我們訪問 http://mail.james.com/bt 發(fā)現(xiàn) .james.com 的 COOKIE 中除了 PHPSESSID 還出現(xiàn)了 BALANCEID,到這里我們已經(jīng)成功了一半;然后,我們可以到apache 的 site_error log 中看到以下信息(設(shè)置 LogLevel debug):#p#

第一次登錄:

  1. BALANCER: Found value (null) for stickysession BALANCEID  
  2. Entering byrequests for BALANCER (balancer://sticky-cluster) 

第二次登錄:

  1. Found value balancer.www2 for stickysession BALANCEID  
  2. Found route www2 

之后,該用戶的 session 就不會跳到 www1 上去了,直到 cookie 或 session 過期。這樣,我們就達(dá)到了“stick session"的目的了,真是形象啊,哈哈:)

以下是一些關(guān)于緩存的配置步驟摘要:

創(chuàng)建/var/www/proxy,設(shè)置apache服務(wù)所用戶可寫,mod_proxy配置樣例:反相代理緩存+緩存架設(shè)前臺的www.example.com反向代理后臺的www.backend.com的8080端口服務(wù)。修改:httpd.conf

  1. <VirtualHost *> 
  2. ServerName www.example.com  
  3. ServerAdmin admin@example.com  
  4. # reverse proxy setting  
  5. ProxyPass / http://www.backend.com:8080/  
  6. ProxyPassReverse / http://www.backend.com:8080/  
  7. # cache dir root  
  8. CacheRoot "/var/www/proxy"  
  9. # max cache storage  
  10. CacheSize 50000000  
  11. # hour: every 4 hour  
  12. CacheGcInterval 4  
  13. # max page expire time: hour  
  14. CacheMaxExpire 240  
  15. # Expire time = (now - last_modified) * CacheLastModifiedFactor  
  16. CacheLastModifiedFactor 0.1  
  17. # defalt expire tag: hour  
  18. CacheDefaultExpire 1  
  19. # force complete after precent of content retrived: 60-90%  
  20. CacheForceCompletion 80  
  21. CustomLog /usr/local/apache/logs/dev_access_log combined  
  22. </VirtualHost> 

 

責(zé)任編輯:佟健 來源: 互聯(lián)網(wǎng)
相關(guān)推薦

2010-04-22 17:53:36

Apache負(fù)載均衡

2010-05-04 14:06:15

Apache負(fù)載均衡

2010-05-05 19:00:54

apache負(fù)載均衡

2010-04-22 18:27:37

Apache負(fù)載均衡

2010-05-07 12:32:04

Apachetomact負(fù)載均衡

2012-10-19 09:57:43

Apache負(fù)載均衡集群功能

2010-05-04 13:27:27

apache負(fù)載均衡

2011-04-18 10:04:24

apachetomcat

2010-04-28 12:11:39

網(wǎng)絡(luò)負(fù)載均衡

2019-11-07 08:49:26

Apache Dubb架構(gòu)負(fù)載均衡

2010-05-05 22:40:21

apache服務(wù)器負(fù)載均衡

2009-07-22 10:25:37

2017-07-03 08:08:25

負(fù)載均衡分類

2021-04-21 14:56:28

負(fù)載均衡高并發(fā)優(yōu)化技術(shù)架構(gòu)

2011-12-02 22:51:46

Nginx負(fù)載均衡

2018-11-07 10:12:37

2012-04-02 15:43:45

nginxtomcat

2010-05-06 15:55:40

2010-05-06 16:55:11

Python負(fù)載均衡

2010-05-10 15:58:14

porxy負(fù)載均衡
點贊
收藏

51CTO技術(shù)棧公眾號