天天看點

Squid反向代理(Reverse proxy)

squid反向代理(Reverse proxy)

反向代理也同樣提供緩存加速,隻不過服務的對象反過來了。

傳統代理、透明代理大多是為區域網路使用者通路Internet中的web站點提供緩存代理;

而反向代理相反,主要為internet中的使用者通路企業區域網路内的web站點提供緩存加速,是一個反向的代理過程,是以稱為反向代理。

對于一些通路量較大的web站點(如新浪、搜狐),提供反向代理可以起到良好的加速作用,同時大大緩解web伺服器的壓力,如:使用nslookup工具解析出www.linuxidc.com站點對應得IP(通常會有多個、這是基于dns介紹的負載分擔)

任選其中一個在浏覽器中直接通路,會發現squid發現代理服務傳回的錯誤資訊,而使用www.linuxidc.com域名通路時,使用者基本上感覺不到squid服務的存在。

傳統代理、透明代理主要面向區域網路使用者提供服務,其對通路internet中web站點提供緩存加速,通路目标是不固定的;

而反向代理主要面向internet的客戶提供服務,其對通路企業自有的web站點提供緩存加速,通路目标相對比較固定。

使用squid反向代理,背景真正提供web服務的站點可以位于internet,也可以位于企業區域網路内,提供web服務的主機可以有一個到多個。

在squid.conf檔案中,實作反向代理服務最基本的選項有兩處,在http_port後加“vhost”(注意:vhost與transparent不能同時使用)使用cache_peer配置項指定背景真正提供web服務的主機(有時稱為上遊伺服器)的ip位址、端口等。

格式:

添加對反向代理的支援,并在公網ip位址的80端口監聽服務

vi /etc/squid/squid.conf

http_port 219.16.21.100:80 vhost

指定web伺服器主機位置

cache_peer web伺服器位址 伺服器類型 http端口 icp端口 [可選項]

web伺服器位址:不解釋

伺服器的類型:對應到目标主機的緩存級别,上遊web主機一般使用“parent”

http端口:web伺服器web服務的端口如80、8080等icp端口:用于連接配接相鄰的ICP(internet cache protocol)緩存伺服器(通常為另外一台squid主機),如果沒有,則使用0;可選項:是提供緩存時的一些附加插參數,如:“originserver”表示該伺服器作為提供web服務的原始主機,“weight=n”指定伺服器的優先權重,n為整數,數字越大優先級越高(預設為1);“max-conn=n”指定方向代理主機到web伺服器的最大連接配接數。

環境描述:

公司使用4台web伺服器實作負載均衡,并在前端使用squid做方向代理加速,internet使用者直接服務的是squid反向代理伺服器(公網ip并做好dns(cdn)解析),通過squid代理伺服器間接通路時間的網站伺服器。

實作步驟:

1.修改squid.conf配置檔案

http_port 80 vhost

cache_peer 192.168.1.11 parent 80 0 originserver weight=5 max-

conn=30

cache_peer 192.168.1.12 parent 80 0 originserver weight=4 max-

conn=15

cache_peer 192.168.1.13 parent 80 0 originserver weight=4 max-

conn=10

cache_peer 192.168.1.15 parent 80 0 originserver weight=1 max-

conn=8

/etc/init.d/squid restart

netstat -utpln |grep 80

2.在internet上客戶機端通路,注意使用反向代理伺服器的ip位址

并檢視代理日志,

tail -f /var/log/squid/access.log