本案例要求先快速搭建好一台Web伺服器:
建立Web測試檔案 /var/www/html/index.html
然後建立代理伺服器,使得192.168.4.0/24網段中的所有主機,均可以通過該代理伺服器通路Web服務。
設定代理服務端口為3128
設定記憶體緩存容量128M
設定硬碟緩存容量為200M,一級目錄16個,二級目錄128個
然後驗證客戶機能否通過代理伺服器通路Web伺服器:
用戶端從浏覽器通路Web伺服器
檢視伺服器B的代理通路日志,驗證來訪位址
檢視伺服器A的Web通路日志,驗證來訪位址
使用3台RHEL6虛拟機,其中一台作為Web伺服器(192.168.4.205)、一台作為Squid代理伺服器(192.168.4.5),另外一台作為測試用的Linux客戶機(192.168.4.100),如圖-1所示。

圖-1
對于Web伺服器的部署,此實驗中僅需要安裝httpd軟體、啟動服務,并生産測試首頁檔案即可,預設httpd網站根路徑為/var/www/html,首頁文檔名稱為index.html。
對于Squid代理伺服器,則要求修改配置檔案/etc/squid/squid.conf,實作代理功能,主要參數如下:
http_port:設定代理服務端口
visible_hostname:設定主機名稱
cache_mem:設定記憶體緩存大小
cache_dir:設定硬碟緩存大小
http_access:設定通路控制權限
驗證時,用戶端需要設定浏覽器,添加代理伺服器資訊,将192.168.4.5設定為自己的代理伺服器,然後通路Web伺服器,最後通過檢視日志檢驗效果。:
squid預設通路日志:/var/log/squid/access.log
httpd預設通路日志:/var/log/httpd/access_log
實作此案例需要按照如下步驟進行。
步驟一:建構web伺服器
1)使用yum安裝web軟體包
[root@svr5 ~]# yum -y install httpd
.. ..
[root@svr5 ~]# rpm -q httpd
httpd-2.2.15-29.el6_4.x86_64
2)啟用httpd服務,并設為開機自動運作
[root@svr5 ~]# service httpd restart ; chkconfig httpd on
Stopping httpd: [FAILED]
Starting httpd: [OK]
httpd服務預設通過TCP 80端口監聽用戶端請求:
[root@svr5 ~]# netstat -anptu | grep httpd
tcp 0 0 :::80 :::* LISTEN 2813/httpd
3)為Web通路建立測試檔案
在網站根目錄/var/www/html下建立一個名為index.html的首頁檔案:
root@svr5 ~]# cat /var/www/html/index.html
<html>
<title>Welcome</title>
<body>
<h1>hello</h1>
<h2>hello</h2>
</body>
</html>
步驟二:部署Squid代理伺服器
1)使用yum安裝squid軟體包:
[root@svr5 ~]# yum -y install squid
[root@svr5 ~]# rpm -q squid
squid-3.1.10-19.el6_4.x86_64
2)修改/etc/squid/squid.conf配置檔案:
[root@svr5 ~]# vim /etc/squid/squid.conf
http_port 3128 //代理端口
visible_hostname squid.svr5.com //設定主機名
cache_mem 128 MB //記憶體緩存
cache_dir ufs /var/spool/squid 200 16 128 //硬碟緩存
http_access allow localnet //允許本機所在網絡中的所有主機使用代理伺服器
3)啟動squid服務,并設定為開機啟動:
[root@svr5 ~]# service squid restart; chkconfing squid on
Stopping squid: [FAILED]
init_cache_dir /var/spool/squid...
Starting squid: . [ OK ]
4)squid服務預設通過TCP 3128端口監聽用戶端請求:
[root@svr5 ~]# netstat -anptu | grep 3128
tcp 0 0 :::3128 :::* LISTEN 3213/(squid)
步驟三:用戶端測試
1)為浏覽器設定代理伺服器
以Firefox浏覽器為例,在指令行輸入firefox打開火狐浏覽器,點選“Edit(編輯)”菜單,選擇“Preferences(屬性)”,如圖-2所示。
圖-2
随後再點選“Advanced(進階)“頁籤,找到”Network(網絡)“頁籤,點選”Settings(設定)“按鈕,如圖-3所示。
圖-3
點選”Manual Proxy Configuration“,在HTTP Proxy後輸入代理伺服器IP位址:192.168.4.5,并在Port後輸入3128端口号資訊,如圖-4所示。
圖-4
2)用戶端使用浏覽器通路Web伺服器
打開火狐浏覽器在位址欄輸入http://192.168.4.205,回車檢視Web伺服器頁面資訊。
3)通過日志檔案檢視效果
通過檢視Squid代理伺服器主機的access.log日志,可以查出有一個用戶端位址為192.168.4.100的主機,通過代理伺服器連接配接192.168.4.205上的Web伺服器。
通過檢視Web伺服器上的access_log日志,可以看出代理192.168.4.5在通路Web伺服器,而不會顯示真實的用戶端192.168.4.100的資訊
[root@svr5 ~]# tailf /var/log/squid/access.log
1429584868.414 0 192.168.4.100 TCP_MEM_HIT/200 486 GET http://192.168.4.205/ - NONE/- text/html
[root@svr5 ~]# tailf /var/log/httpd/access_log
192.168.4.5 - - [20/Apr/2015:19:54:28 -0700] "GET /favicon.ico HTTP/1.1" 404 291 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20131023 Firefox/17.0"