Squid的介紹:
一款超強、開源的Proxy軟件,除了做普通的代理服務器外,還可以做反向代理的WEB加速。如果你知道國內他的使用者有sina、sohu、netease...
忙活了兩天,總算把Squid的反向代理服務器設置好了,總結一下,方便后來者
本文主要討論的是squid反向代理模式用做web加速服務器的設置
按照本文的說明,你最終可以實現一個squid對多個網站進行緩存加速的功能(這些網站可以在squid本機上www.skyhe.com,也可以在其它服務器上bbs/photo.skyhe.com)
首先
你需要下載一份最新的Squid軟件,并根據參考文章安裝配置
Squid - NT版本下載:
http://www.acmeconsulting.it/pagine/opensource/squid/SquidNT.htm
Squid的正向代理服務設置相當簡單,相信你很快就能獲得成就感:)
其次
為了測試域名轉向,你最好在自己的內網服務器上面安裝一個DNS Server
(DNS Server的安裝設置問題請參考相關書籍或文章),并設置好區域(正向查找、反向查找)、主機(A紀錄)
www.skyhe.com 192.168.10.252
bbs.skyhe.com 192.168.10.56
photo.skyhe.com 192.168.10.119 |
以上252是主網站的服務器IP(和Squid同一臺機器),56、119分別是其它兩個網站的內部IP。
同時,你需要在本地的host文件加入內部的DNS解析,比如:
192.168.10.252 www.skyhe.com
192.168.10.252 bbs.skyhe.com
192.168.10.252 photo.skyhe.com |
192.168.10.252是你的squid服務器地址,本文測試環境下,整個反向代理訪問的流程是:
用戶請求bbs.skyhe.com - 本機host解析為192.168.10.252 - squid服務器
- DNS服務器(解析到192.168.1.56) - web服務器(如果沒有緩存該頁) - squid服務器 - 用戶
然后
根據參考文章配置反向代理服務器,在配置的過程中要注意以下幾點
1、服務器port設置
本機轉別機和本機轉本機(squid和web server在一臺機器上)的設置不同
前者squid和web可以都用80端口,后者squid用80,web服務器得換端口
2、dst和dstdomain的區別
前者是對ip定義別名,后者是對domain定義別名
如果采用ip定義別名,httpd_accel_host不能采用“virtual”模式
3、httpd_accel_with_proxy
采用加速器模式,默認是關掉代理服務的,如果打開,將無法使用高速緩存加入web服務(加速器下,squid會將web內容放入內存,響應速度肯定比硬盤文件緩存快)
我的配置文件如下:
# visible name
visible_hostname cache.example.com
# cache config: space use 1G and memory use 256M
cache_dir ufs /usr/local/squid/cache 1024 16 256
cache_mem 256 MB
cache_effective_user squid
cache_effective_group squid
# 以上主機名和緩存設置比較簡單,略過
# 關鍵 1
http_port 80 # squid監聽的端口,必須為80
# ------(你不想用戶用www.skyhe.com:8001訪問你的網站吧?;)
# 關鍵 2
httpd_accel_host virtual #加速器的主機名稱或者IP地址。
# *如果是對多個域名加速,請填寫"virtual"(虛擬主機模式)
httpd_accel_port 8000 #加速器的工作端口,和web服務器一致
httpd_accel_single_host off
httpd_accel_uses_host_header on
httpd_accel_with_proxy off #是否同時運行代理服務
# 關鍵 3 - TAG: acl節點的設置
# 設定可以訪問的域名別名
acl HostA dstdomain www.skyhe.com
acl HostB dstdomain bbs.skyhe.com
acl HostC dstdomain photo.skyhe.com
# 加速器采用http協議在8000端口監聽
acl acceleratedProtocol protocol HTTP
acl acceleratedPort port 8000
# 關鍵 4 - 允許指定的域名在指定端口的訪問
http_access allow acceleratedProtocol acceleratedPort HostA
http_access allow acceleratedProtocol acceleratedPort HostB
http_access allow acceleratedProtocol acceleratedPort HostC
# 日志設定
emulate_httpd_log on
cache_store_log none
# 管理員相關設定
acl manager proto cache_object
http_access allow manager all
cachemgr_passwd pass all
# 最后不要忘了
http_access deny all
|
補充
在調試的過程中你可能會不停的遇到緩存的問題,導致你不能正確的看到配置修改后的效果,所以:
1、DNS服務器段緩存的清除辦法:
DNS配置 - DNS服務器上右鍵 - 清除緩存
2、DNS客戶端緩存的清除辦法:
CMD - “ ipconfig /flushdns ”
3、Squid緩存的清除辦法
目前沒有找到到合適的,maybe:重啟squid?CMD輸入“ squid -z ”?
4、IE的緩存
Internet選項 - 清除臨時文件 - 清除歷史紀錄
5、查看DNS服務器信息的CMD命令:nslookup
例如:nslookup www.sina.com.cn
如果DNS服務器允許了區域復制,還可以在nslookup下用“ls -t abd.com”查看區域adc.com的所有主機列表
本文轉自:
http://www.skyhe.com/blog/bloget/home/review.asp?id=600
---------------------------------------------------------------------------------------------------------------------------------
說人之短,乃護己之短??浼褐L,乃忌人之長。皆由存心不厚,識量太狹耳。能去此弊,可以進德,可以遠怨。
http://www.tkk7.com/szhswl
------------------------------------------------------------------------------------------------------ ----------------- ---------
posted on 2008-01-23 19:38
宋針還 閱讀(1581)
評論(0) 編輯 收藏 所屬分類:
反向代理