Windows下Squid網站加速

來源:互聯網
上載者:User
  •  

    Windows下Squid網站加速使用手記

       

    2006-11-16 23:39:43 大 中 小 案例:
    我們有一個網站,網站名稱暫且為dummy.example.com。原先網站只建立在電信伺服器上,但是隨著業務的需要,越來越多的網通使用者也需要訪問我們的網站,這就需要我們在網通的伺服器上也要建立一套電信相同的網站,為網通使用者提供服務。對於使用者而言,不管是電信使用者還是網通使用者,只需要使用同一個網域名稱:dummy.example.com就能取得滿意的訪問速度。首先要解決網域名稱的就近性判斷,或者說智能dns的問題,目前比較常用的辦法有兩種,一是將網域名稱解析的工作交給像網宿等提供cdn解決方案的服務提供者來完成dns解析的工作,當然互連網上也有免費的提供智能dns解析服務的,比如http://www.dnspod.com/也提供免費的網通電信智能DNS,當然免費的同時風險也是要承擔的;二是當公司規模發展到一定的程度後,可以考慮自己購買硬體裝置,更有甚者,像新浪等都建有自己的cdn網路。本文主要是介紹squid快取服務器的運用,就一筆帶過dns解析這部分。 接著說一下建網通網站碰到的問題:
    1、因為該網站屬於一個類似新聞發布的網站,大部分頁面在後台發布的時候是通過產生靜態頁的方式發布的。也就是每天隨著網站的更新,不時將會產生一部分靜態頁。
    2、網站內的圖片是通過後台上傳的方式上傳的,每天不週期性更新。
    3、後台一次發布,電信和網通網站同步更新。 電信網站已經建立並且正常運行,每天都將不週期性產生靜態頁面和上傳圖片等,如果我們在網通網站上搭建和電信相同的WEB網站,勢必導致兩個網站之間內容的不同步,如果採用檔案同步等等方式來執行,一來同步期間網通網站訪問存在問題,二來同步工作在網通線路和電信線路之間頻繁進行,非常麻煩。
    故所以我們考慮在網通節點上搭建一台用於網站加速的Cache伺服器,將源指向電信伺服器,而不是建立一個WEB網站的方式來進行。採用這種方式的話,第一次訪問一個頁面相對較慢,而且如果動態網頁面很多的情況下也不宜採用。 Cache Server採用的軟體是Squid,Squid比較理想的運行環境是類Unix的作業系統下,由於網通網站沒有Linux伺服器,故只能使用Windows下的squid軟體,版本為squid-2.6.STABLE3。以下為Windows下Squid的配置過程:
    1、到http://www.acmeconsulting.it/SquidNT.htm網站擷取最新版本的squid for windows NT
    2、unzip to c:/squid
    3、在c:/squid/etc目錄下,
     Copy and rename the follwing files:
       squid.conf.default ==> squid.conf
       mime.conf.default ==> mime.conf
       cachemgr.conf.default ==> cachemgr.conf
    4、建立d:/squid/var目錄,在var目錄下建立logs和cache目錄,其中logs目錄用於存放日誌,cache目錄用於存放硬碟快取資料
    5、建立系統賬戶squid,屬於普通使用者組,將來用於運行squid服務。將d:/squid目錄給予squid讀寫權限。
    6、將squid安裝為服務,命令格式:squid -i [-f configfile] [-n servicename],如c:/squid/sbin/squid -i -n Squid_Proxy,將使用預設的設定檔c:/squid/etc/squid.conf,服務名稱為Squid_Proxy。刪除服務:squid -r [-n servicename]
    7、修改設定檔squid.conf
     # 監聽80連接埠,並配置為加速模式
     http_port 80 vhost
     # cache伺服器之間通訊的連接埠UDP
     icp_port 3130
     # cache伺服器的名稱
     visible_hostname cache.example.com
     # cache目錄和大小的設定,1GB硬碟空間和256M記憶體
     cache_dir ufs d:/squid/var/cache 1024 16 256
     cache_mem 256 MB
     
     # 設定上級根伺服器的地址,也就是電信原始伺服器地址
     # 當然cache_peer還可以設定兄弟節點、上級cache伺服器等等,這裡這設定了原始伺服器地址
     cache_peer 電信伺服器IP parent 80 0 no-query originserver
     
     # 主機檔案路徑
     hosts_file c:/windows/system32/drivers/etc/hosts
     
     # 設定日誌目錄和日誌格式
     access_log d:/squid/var/logs/access.log squid
     cache_log d:/squid/var/logs/cache.log
     cache_store_log d:/squid/var/logs/store.log
     emulate_httpd_log on
     
     # 允許所有使用者訪問
     http_access allow all
     # 緩衝管理員
     cache_mgr webmaster@example.com
     
    8、初始化cache目錄
     c:/squid/sbin/squid -z
     如果設定檔出錯的話,初始化cache目錄將會出錯。
    9、啟動Squid_Proxy服務
     運行services.msc開啟服務視窗,選擇Squid_Proxy服務,將啟動帳號設定為開始建立的squid. net start squid_proxy
    10、檢查Cache伺服器運行是否正常
     找一台終端,修改終端的hosts檔案,將dummy.example.com指向cache伺服器的ip地址,檢查網站是否正常訪問。11、其他squid命令squid -k reconfigure  //啟用新的設定檔squid -k rotate       //截斷日誌squid -k shutdown     //stop squid 以前使用squid都是在linux環境下使用,剛使用windows下的squid,還是存在一些問題,其中的一個問題為:
    主機標頭檔的使用方法存在疑問,如果在cache伺服器上hosts檔案中加入了:
    電信伺服器IP  dummy.example.com
    再將squid.conf中cache_peer的配置修改為:
    cache_peer dummy.example.com parent 80 0 no-query originserver
    重啟Squid服務後,發現訪問所有通過Cache伺服器加速的頁面都出現Access Denied。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.