亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 1138 | 回復(fù): 0
打印 上一主題 下一主題

利用 squid 反向代理提高網(wǎng)站性能 [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2009-05-04 15:36 |只看該作者 |倒序瀏覽

2009 年 4 月 02 日
本文在介紹 squid 反向代理的工作原理的基礎(chǔ)上,指出反向代理技術(shù)在提高網(wǎng)站訪問速度,增強(qiáng)網(wǎng)站可用性、安全性方面有很好的用途。作者在具體的實驗環(huán)境下,利用 DNS 輪詢和 Squid 反向代理技術(shù),實現(xiàn)了網(wǎng)站的負(fù)載均衡,從而提高了網(wǎng)站的可用性和可靠性。
本文在介紹 squid 反向代理的工作原理的基礎(chǔ)上,指出反向代理技術(shù)在提高網(wǎng)站訪問速度,增強(qiáng)網(wǎng)站可用性、安全性方面有很好的用途。作者在具體的實驗環(huán)境下,利用 DNS 輪詢和 Squid 反向代理技術(shù),實現(xiàn)了網(wǎng)站的負(fù)載均衡,從而提高了網(wǎng)站的可用性和可靠性。
現(xiàn)在有許多大型的門戶網(wǎng)站如 SINA 都采用 squid 反向代理技術(shù)來加速網(wǎng)站的訪問速度,可將不同的 URL 請求分發(fā)到后臺不同的 WEB 服務(wù)器上,同時互聯(lián)網(wǎng)用戶只能看到反向代理服務(wù)器的地址,加強(qiáng)了網(wǎng)站的訪問安全。
反向代理的概念
反向代理服務(wù)器又稱為 WEB 加速服務(wù)器,它位于 WEB 服務(wù)器的前端,充當(dāng) WEB 服
務(wù)器的內(nèi)容緩存器。其系統(tǒng)結(jié)構(gòu)如圖 1
圖 1. 系統(tǒng)結(jié)構(gòu)


反向代理服務(wù)器是針對 WEB 服務(wù)器設(shè)置的,后臺 WEB 服務(wù)器對互聯(lián)網(wǎng)用戶是透明的,用戶只能看到反向代理服務(wù)器的地址,不清楚后臺 WEB 服務(wù)器是如何組織架構(gòu)的。當(dāng)互聯(lián)網(wǎng)用戶請求 WEB 服務(wù)時,DNS 將請求的域名解析為反向代理服務(wù)器的 IP 地址,這樣 URL 請求將被發(fā)送到反向代理服務(wù)器,由反向代理服務(wù)器負(fù)責(zé)處理用戶的請求與應(yīng)答、與后臺 WEB 服務(wù)器交互。利用反向代理服務(wù)器減輕了后臺 WEB 服務(wù)器的負(fù)載,提高了訪問速度,同時避免了因用戶直接與 WEB 服務(wù)器通信帶來的安全隱患。




Squid 反向代理的實現(xiàn)原理
目前有許多反向代理軟件,比較有名的有 Nginx 和 Squid 。 Nginx 是由 Igor Sysoev 為俄羅斯訪問量第二的 Rambler.ru 站點開發(fā)的,是一個高性能的 HTTP 和反向代理服務(wù)器,也是一個 IMAP/POP3/SMTP 代理服務(wù)器。
Squid 是由美國政府大力資助的一項研究計劃,其目的為解決網(wǎng)絡(luò)帶寬不足的問題,支持HTTP,HTTPS,F(xiàn)TP 等多種協(xié)議,是現(xiàn)在 Unix 系統(tǒng)上使用、最多功能也最完整的一套軟體。下面將重點介紹 Squid 反向代理的實現(xiàn)原理和在提高網(wǎng)站性能方面的應(yīng)用。
Squid反向代理服務(wù)器位于本地 WEB 服務(wù)器和 Internet 之間 , 組織架構(gòu)如圖 2:
圖 2. 組織架構(gòu)


客戶端請求訪問 WEB 服務(wù)時,DNS 將訪問的域名解析為 Squid 反向代理服務(wù)器的 IP 地址,這樣客戶端的 URL 請求將被發(fā)送到反向代理服務(wù)器。如果 Squid 反向代理服務(wù)器中緩存了該請求的資源,則將該請求的資源直接返回給客戶端,否則反向代理服務(wù)器將向后臺的 WEB 服務(wù)器請求資源,然后將請求的應(yīng)答返回給客戶端,同時也將該應(yīng)答緩存在本地,供下一個請求者使用。
Squid 反向代理一般只緩存可緩沖的數(shù)據(jù)(比如 html 網(wǎng)頁和圖片等),而一些 CGI 腳本程序或者 ASP、JSP 之類的動態(tài)程序默認(rèn)不緩存。它根據(jù)從 WEB 服務(wù)器返回的 HTTP 頭標(biāo)記來緩沖靜態(tài)頁面。有四個最重要 HTTP 頭標(biāo)記:

  • Last-Modified: 告訴反向代理頁面什么時間被修改
  • Expires: 告訴反向代理頁面什么時間應(yīng)該從緩沖區(qū)中刪除
  • Cache-Control: 告訴反向代理頁面是否應(yīng)該被緩沖
  • Pragma: 用來包含實現(xiàn)特定的指令,最常用的是 Pragma:no-cache





利用 Squid 反向代理加速網(wǎng)站實例
本實例的域名是 wenjin.cache.ibm.com.cn,通過DNS的輪詢技術(shù),將客戶端的請求分發(fā)給其中一臺 Squid 反向代理服務(wù)器處理,如果這臺 Squid 緩存了用戶的請求資源,則將請求的資源直接返回給用戶,否則這臺 Squid 將沒有緩存的請求根據(jù)配置的規(guī)則發(fā)送給鄰居 Squid 和后臺的 WEB 服務(wù)器處理,這樣既減輕后臺 WEB 服務(wù)器的負(fù)載,又提高整個網(wǎng)站的性能和安全性。該系統(tǒng)結(jié)構(gòu)圖 3 如下:
圖 3. 系統(tǒng)結(jié)構(gòu)


配置的系統(tǒng)環(huán)境:

  • 一臺 DNS 服務(wù)器:操作系統(tǒng) Freebsd,軟件 BIND 9.5,IP 192.168.76.222 ;
  • 三臺 Squid 服務(wù)器:操作系統(tǒng) Linux AS 4,軟件 Squid 3.0,相應(yīng)的 IP 如下:

Squid1:192.168.76.223
Squid2:192.168.76.224
Squid3:192.168.76.225

  • 三臺 WEB 服務(wù)器:操作系統(tǒng) Linux AS 4,應(yīng)用軟件 Tomcat 5.0+Mysql,相應(yīng)的 IP 地址如下:

webServer1:210.82.118.195
webServer2:192.168.76.226
webServer1:192.168.76.227
應(yīng)用軟件的安裝和配置
配置 DNS 服務(wù)器
軟件利用 Freebsd 自帶的 bind 9.5 。然后針對該系統(tǒng)配置 bind,首先修改 bind 的配置文件 /etc/namedb/named.conf,在文件中添加
zone "cache.ibm.com.cn"{
        type master;
        file "master/ cache.ibm.com.cn ";
};
再在 /etc/namedb/master 目錄下添加 cache.ibm.com.cn 文件,該文件的內(nèi)容如下:
$TTL    3600
@       IN      SOA     search. ibm.com.cn. root. ibm.com.cn.  (
                                20080807        ; Serial
                                3600    ; Refresh
                                900     ; Retry
                                3600000 ; Expire
                                3600 )  ; Minimum
        IN      NS      search.ibm.com.cn.
1       IN      PTR     localhost.ibm.com.cn.
wenjin  IN      A       192.168.76.223
wenjin  IN      A       192.168.76.224
wenjin  IN      A       192.168.76.225
這樣當(dāng)用戶請求的時候,DNS 通過輪詢機(jī)制將 wenjin.cache.ibm.com.cn 的域名解析為 192.168.76.223、192.168.76.224 和 192.168.76.225 其中之一。
配置完成后,運(yùn)行 rndc star t 啟動 bind 服務(wù)。可在 /etc/rc.conf 中設(shè)置 named_enable="YES" 使得開機(jī)自啟動。
用 ps – A |grep named 查看 bind 服務(wù)是否起來;
用 nslookup wenjin.cache.ibm.com.cn 測試 bind 服務(wù)是否正常運(yùn)行。
配置 Squid1 服務(wù)器
  • 下載 squid-3.0.STABLE8.tar.gz 源碼包,將其放在 /home 目錄下
  • 解壓縮tar – zxvf squid-3.0.STABLE8.tar.gz
    設(shè)置配置參數(shù):cd squid-3.0.STABLE10
    ./configure – prefix=/usr/local/squid
    將 squid 安裝在 /usr/local 目錄下
  • 編譯安裝:make&make install安裝完以后會在 /usr/local 目錄下看見 squid 目錄。
  • 配置 squid 配置文件
    編輯 squid.conf 文件,vi /usr/local/squid/etc/squid.conf
    cache_effective_user squid
    cache_effective_group squid
    ######### 設(shè)定 squid 的主機(jī)名 , 如無此項 squid 將無法啟動
    visible_hostname squid1.nlc.gov.cn
    ############# 配置 squid 為加速模式 #################
    http_port 80 accel vhost vport
    icp_port 3130
    ##### 配置 squid2、squid3 為其鄰居,當(dāng) squid1 在其緩存中沒有找到請求的資源時,
              通過 ICP 查詢?nèi)テ溧従又腥〉镁彺?br /> cache_peer squid2.ibm.com.cn sibling 80 3130
    cache_peer squid3.ibm.com.cn sibling 80 3130
    ##### squid1 的三個父節(jié)點,originserver 參數(shù)指明是源服務(wù)器,
    round-robin  參數(shù)指明 squid 通過輪詢方式將請求分發(fā)到其中一臺父節(jié)點;
    squid 同時會對這些父節(jié)點的健康狀態(tài)進(jìn)行檢查,如果父節(jié)點 down 了,
    那么 squid 會從剩余的 origin 服務(wù)器中抓取數(shù)據(jù)
    cache_peer 210.82.118.195 parent 8080 0 no-query originserver round-robin \
                                                  name=webServer1
    cache_peer 192.168.76.226 parent 8080 0 no-query originserver round-robin \
                                                  name=webServer2
    cache_peer 192.168.76.227 parent 8080 0 no-query originserver round-robin \
                                                name=webServer3
    #### 將 wenjin.cache.ibm.com.cn 域的請求通過 RR 輪詢方式轉(zhuǎn)發(fā)到三個父節(jié)點中的一個
    cache_peer_domain webServer1 webServer2 webServer3 wenjin.cache.ibm.com.cn
    ##### 下面是一些訪問控制、日志和緩存目錄的設(shè)置
    acl localnet src 192.168.76.223 192.168.76.224 192.168.76.225
    acl all src 0.0.0.0/0.0.0.0
    http_access allow all
    icp_access allow localnet
    cache_log /usr/local/squid/var/logs/cache.log
    access_log /usr/local/squid/var/logs/access.log squid
    cache_dir ufs /usr/local/squid/var/cache/ 1000 16 256
    ####### 對 squid 的一些優(yōu)化 ###############
    maximum_object_size 10240 KB  ### 能緩存的最大對象為 10M
    maximum_object_size_in_memory 512 KB ### 內(nèi)存中緩存的最大對象 512K
    cache_mem 256 MB  ###squid 用于緩存的內(nèi)存量
    保存后 :wq 退出。
    在 /etc/hosts 文件中添加
    192.168.76.223  squid1.ibm.com.cn
    192.168.76.224  squid2.ibm.com.cn
    192.168.76.225  squid3.ibm.com.cn
    保存后 : wq 退出。
    檢查 squid 配置文件正確與否:/usr/local/squid/bin/squid – k parse
    生成緩存目錄/usr/local/squid/bin/squid – z
    啟動squid:/usr/local/squid/bin/squid
    配置 squid2 和 squid3 服務(wù)器
    squid2 和 squid3 服務(wù)器的配置方法和配置參數(shù)和 squid1 一樣,配置完成后,分別啟動這兩個服務(wù)器上的 squid 服務(wù)。
    在 squid 的日志文件 cache.log 中,出現(xiàn)如下日志信息則說明三臺 squid 之間成功配置為 sibling,且配置了三個父代理。
    2008/11/17 10:08:47| Configuring Sibling squid1.ibm.com.cn/80/3130
    2008/11/17 10:08:47| Configuring Sibling squid3.ibm.com.cn/80/3130
    2008/11/17 10:08:47| Configuring Parent 210.82.118.195/8080/0
    2008/11/17 10:08:47| Configuring Parent 192.168.76.226/8080/0
    2008/11/17 10:08:47| Configuring Parent 192.168.76.227/8080/0
    2008/11/17 10:08:47| Ready to serve requests.
    測試
    測試之前,保證 DNS 服務(wù)、三臺 squid 服務(wù)和三臺 web 服務(wù)都正常起來。在客戶端輸入
    http://wenjin.cache.ibm.com.cn
    ,則正確的顯示該網(wǎng)頁。服務(wù)器端的響應(yīng)對客戶端是透明的,客戶端不知道請求是由哪臺 WEB 服務(wù)器處理的;而且其中某臺 Squid 服務(wù)器或 WEB 服務(wù)器發(fā)生故障,也不影響服務(wù)的正常運(yùn)行。




    總結(jié)
    Squid 是一個開源的軟件,利用它的反向代理技術(shù)可以提高網(wǎng)站系統(tǒng)的訪問速度。本文在真實的網(wǎng)絡(luò)環(huán)境下,利用三臺 squid 反向代理服務(wù)器加速了網(wǎng)站的性能,同時結(jié)合 DNS 輪詢技術(shù)實現(xiàn)了網(wǎng)站的負(fù)載均衡。經(jīng)過一段時間的測試和試運(yùn)行,該網(wǎng)站的訪問速度和可用性方面都有很大的提高,從未出現(xiàn)過網(wǎng)站服務(wù)中斷情況。
    參考資料

    關(guān)于作者


    李明慧在IBM中國軟件開發(fā)中心BI團(tuán)隊工作從事DB2 Warehouse Administration Console的功能測試工作


    本文來自ChinaUnix博客,如果查看原文請點:http://blog.chinaunix.net/u1/50603/showart_1917874.html
  • 您需要登錄后才可以回帖 登錄 | 注冊

    本版積分規(guī)則 發(fā)表回復(fù)

      

    北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
    未成年舉報專區(qū)
    中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
    感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請注明原作者名及出處

    清除 Cookies - ChinaUnix - Archiver - WAP - TOP