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 [email protected]   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。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章