CleverCode最近研究了一下squid的安裝與配置。現在總結一下。分享給大家。
代理服務器英文全稱是Proxy Server,其功能就是代理網絡用戶去取得網絡信息。
Squid是一個緩存Internet 數據的軟件,其接收用戶的下載申請,並自動處理所下載的數據。當一個用戶想要下載一個主頁時,可以向Squid 發出一個申請,要Squid 代替其進行下載,然後Squid 連接所申請網站並請求該主頁,接著把該主頁傳給用戶同時保留一個備份,當別的用戶申請同樣的頁面時,Squid 把保存的備份立即傳給用戶,使用戶覺得速度相當快。Squid 可以代理HTTP、FTP、GOPHER、SSL和WAIS等協議並且Squid 可以自動地進行處理,可以根據自己的需要設置Squid,使之過濾掉不想要的東西。
普通代理:需要客戶機在浏覽器中指定代理服務器的地址、端口;
透明代理:適用於企業的網關主機(共享接入Internet)中,客戶機不需要指定代理服務器地址、端口等信息,代理服務器需要設置防火牆策略將客戶機的Web訪問數據轉交給代理服務程序處理;
反向代理:是指以代理服務器來接受internet上的連接請求,然後將請求轉發給內部網絡上的服務器,並將從服務器上得到的結果返回給internet上請求連接的客戶端,此時代理服務器對外就表現為一個服務器。
http://download.csdn.net/detail/clevercode/9337437。
squid服務器:192.168.142.133。
web服務器:192.168.142.130 與192.168.142.131。
# cd /usr/local/squid/etc/
# mv squid.conf squid.conf.bak
# vi /usr/local/squid/etc/squid.conf
#主機名 visible_hostname static.squid-133 #設置監聽的IP與端口號 http_port 80 vhost vport #額外提供給squid使用的內存,squid的內存總占用為 X * 10+15+“cache_mem”,其中X為squid的cache占用的容量(以GB為單位) #比如下面的cache大小是100M,即0.1GB,則內存總占用為0.1*10+15+64=80M,推薦大小為物理內存的1/3-1/2或更多。 cache_mem 4096 MB #設置squid磁盤緩存最大文件,超過2M的文件不保存到硬盤 maximum_object_size_in_memory 2048 KB #使用lru表示:它只替換長時間沒有被訪問過的對象 memory_replacement_policy lru #此記錄文件用來記錄緩沖對象的添加,刪除情況(一般可設置為:cache_store_log none, #來降低日志文件占用的磁盤空間,這一點請特別注意。) cache_store_log none #log文件日志格式 logformat combined %>a %ui %un [%tl] "%rm %ru HTTP/%rv" %Hs %
# 後台啟動
# /usr/local/squid/sbin/squid -s1)通過訪問http://res.domain.com/comm.js。可以到看到res.domain.com是指向了192.168.142.133。但是實際取出js文件是從192.168.142.131服務器中取得。
2)修改comm.js 成為如下內容。但是發現訪問comm.js內容還是沒有變。
#vi comm.js
this is from 192.168.142.131 js! i am change !
3)清除133緩存,再訪問數據就變了。
# /usr/local/squid/bin/squidclient -m PURGE -p 80 "http://res.domain.com/comm.js"
4)改變URL也會是數據變化。squid緩存的key可以理解為url的md5。只要url發生了變化,那麼數據就會發生編號。
如圖訪問:http://res.domain.com/comm.js?r=123456。
5 )訪問圖片
# /usr/local/squid/sbin/squid -z 初始化緩存空間
# /usr/local/squid/sbin/squid 前台啟動 (用於輸出調試)
# /usr/local/squid/sbin/squid -s 後台啟動
# /usr/local/squid/sbin/squid -k shutdown 停止
# /usr/local/squid/sbin/squid -k reconfigure 重新載入配置文件
# /usr/local/squid/sbin/squid -k parse 檢查conf
# /usr/local/squid/sbin/squid -k rotate 優化碎片
# /usr/local/squid/bin/squidclient -p 80 mgr:info 查看squid命中情況
# /usr/local/squid/bin/squidclient -m PURGE -p 80 "http://res.domain.com/comm.js" 刪除指定URL緩存