天天看點

SQUID傳統正向代理

本案例要求先快速搭建好一台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所示。

SQUID傳統正向代理

圖-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所示。

SQUID傳統正向代理

圖-2

随後再點選“Advanced(進階)“頁籤,找到”Network(網絡)“頁籤,點選”Settings(設定)“按鈕,如圖-3所示。

SQUID傳統正向代理

圖-3

點選”Manual Proxy Configuration“,在HTTP Proxy後輸入代理伺服器IP位址:192.168.4.5,并在Port後輸入3128端口号資訊,如圖-4所示。

SQUID傳統正向代理

圖-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"

繼續閱讀