1. 程式人生 > >正向代理與反向代理(squid)

正向代理與反向代理(squid)

正向代理

正向代理:是一個位於客戶端和原始伺服器(origin server)之間的伺服器,為了從原始伺服器取得內容,客戶端向代理髮送一個請求並指定目標(原始伺服器),然後代理向原始伺服器轉交請求並將獲得的內容返回給客戶端。客戶端才能使用正向代理。

正向代理的典型用途是為在防火牆內的區域網客戶端提供訪問Internet的途徑。正向代理還可以使用緩衝特性(由mod_cache提供)減少網路使用率。

使用ProxyRequests指令即可啟用正向代理。因為正向代理允許客戶端通過它訪問任意網站並且隱藏客戶端自身,因此你必須採取安全措施以確保僅為經過授權的客戶端提供服務。

和反向代理不同之處在於,典型的正向代理是一種終端使用者知道並主動使用的代理方式。例如Chrome瀏覽器中安裝了switchysharp以後,通過switchysharp方便地進行代理轉發服務。而為此使用者必須要提前在switchysharp中做好設定才能達到相應的效果。

實驗環境:

真機 172.25.254.66 可以上網,作為伺服器

虛擬機器 172.25.254.2 不可上網,作為遠端主機

虛擬機器 172.25.254.1 可以上網,作為遠端主機的代理伺服器

開始實驗:

代理伺服器上:

yum install squid -y ---- 安裝代理服務

修改配置檔案:vim /etc/squid/squid.conf

其中引數所表達的意思:

100 ---- 表示快取大小不能超過100M
16 ---- 表示有16個一級目錄
256 ---- 表示有256個二級目錄

關閉代理主機,遠端主機防火牆

進入主機瀏覽器,點選 Edit->preferences->Advanced->Network->settings

選擇Manual proxy confirguration輸入squid主機ID及介面3128

現在即可在沒有網路的主機上正常瀏覽網頁

正向代理成功


反向代理

通常的代理伺服器,只用於代理內部網路對Internet的連線請求,客戶機必須指定代理伺服器,並將本來要直接傳送到Web伺服器上的http請求傳送到代理伺服器中。由於外部網路上的主機並不會配置並使用這個代理伺服器,普通代理伺服器也被設計為在Internet上搜尋多個不確定的伺服器,而不是針對Internet上多個客戶機的請求訪 問某一個固定的伺服器,因此普通的Web代理伺服器不支援外部對內部網路的訪問請求。當一個代理伺服器能夠代理外部網路上的主機,訪問內部網路時,這種代 理服務的方式稱為反向代理服務。此時代理伺服器對外就表現為一個Web伺服器,外部網路就可以簡單把它當作一個標準的Web伺服器而不需要特定的配置。不 同之處在於,這個伺服器沒有儲存任何網頁的真實資料,所有的靜態網頁或者CGI程式,都儲存在內部的Web伺服器上。因此對反向代理伺服器的攻擊並不會使得網頁資訊遭到破壞,這樣就增強了Web伺服器的安全性。

更改配置檔案:(vim /etc/squid/squid.conf ):

vhost ---- 虛擬主機
vport ---- 虛擬埠
parent ---- apache伺服器IP
0 ---- 沒有沒有備用機
proxy-only ---- 只做代理

重啟squid服務後,在真機瀏覽器中訪問apache伺服器

再在真機瀏覽器訪問代理伺服器

反向代理成功

 

輪巡代理

進入squid主機

編寫配置檔案:/etc/squid/squid.conf

即可實現輪巡代理,訪問的內容由兩臺主機互動提供