Squid反向代理N個(gè)后臺(tái)WEB實(shí)現(xiàn)說明[小結(jié)文檔]
1. Squid反向代理單個(gè)后臺(tái)WEB服務(wù)器
A、如果WEB服務(wù)器和反向代理服務(wù)器是兩臺(tái)單獨(dú)的機(jī)器(一般的反向代理應(yīng)該有兩塊網(wǎng)卡分別連接了內(nèi)外部網(wǎng)絡(luò))。那么,應(yīng)該修改下面的內(nèi)容來設(shè)置反向代理服務(wù)。
http_port 80 # squid監(jiān)聽的端口
httpd_accel_host 192.168.0.100 # 內(nèi)部WEB服務(wù)器的IP地址
httpd_accel_port 80 # WEB服務(wù)器的IP地址
httpd_accel_single_host on # 轉(zhuǎn)發(fā)為緩沖的請(qǐng)求到一臺(tái)單獨(dú)的機(jī)器
httpd_accel_with_proxy on #
httpd_accel_uses_host_header off
B、如果WEB服務(wù)器和反向代理服務(wù)器是同一臺(tái)機(jī)器。那么,應(yīng)該設(shè)置WEB服務(wù)器的監(jiān)聽端口為非80端口(比如:81端口)。要修改的內(nèi)容如下:
http_port 80 # squid監(jiān)聽的端口
httpd_accel_host localhost # 內(nèi)部WEB服務(wù)器的IP地址
httpd_accel_port 81 # WEB服務(wù)器的IP地址
httpd_accel_single_host on # 轉(zhuǎn)發(fā)為緩沖的請(qǐng)求到一臺(tái)單獨(dú)的機(jī)器
httpd_accel_with_proxy on #
httpd_accel_uses_host_header off
下面解釋一下配置指令。
http_port 80
選項(xiàng) http_port 指定squid監(jiān)聽HTTP請(qǐng)求的端口,一般都設(shè)置成80端口,這樣使用戶感覺不到反向代理的存在,就像訪問真正的WEB服務(wù)器一樣。
httpd_accel_host 192.168.0.100 和 httpd_accel_port 80
選項(xiàng)httpd_accel_host 和 httpd_accel_port 指定WEB服務(wù)器的IP地址和端口號(hào),可以根據(jù)自己的WEB服務(wù)器的實(shí)際情況而定。
httpd_accel_single_host on
選項(xiàng)httpd_accel_single_host 為on 時(shí),squid被設(shè)置成僅對(duì)單一的web服務(wù)器作反向代理。不考慮HTTP頭信息,Squid轉(zhuǎn)發(fā)所有的為被緩沖的頁(yè)面請(qǐng)求到這個(gè)web服務(wù)器。如果squid需要做多個(gè)web服務(wù)器反向代理,必須將此選項(xiàng)設(shè)置為off,并且使用轉(zhuǎn)向器或者DNS去映射請(qǐng)求到合適的后臺(tái)WEB服務(wù)器。
httpd_accel_with_proxy on
如果希望squid既作反向代理服務(wù)器又作本地機(jī)器的上網(wǎng)代理,需要將httpd_accel_with_proxy 改為 on,默認(rèn)情況下是off
httpd_accel_uses_host_header off
在HTTP協(xié)議1.1中,HTTP請(qǐng)求包括一個(gè)主機(jī)頭信息,指定URL的主機(jī)名或者主機(jī)的IP地址。這個(gè)選項(xiàng)可以用來完成多個(gè)后臺(tái)WEB服務(wù)器的反向代理功能。
2. Squid反向代理多個(gè)后臺(tái)WEB服務(wù)器
我們可以用Squid反向代理多個(gè)后臺(tái)WEB服務(wù)器。例如:我們可以配置squid同時(shí)反向代理www.xxx.com, www.yyy.com, www.zzz.com三個(gè)后臺(tái)WEB服務(wù)器,
Squid的配置如下:
httpd_accel_host virtual
httpd_accel_port 80
httpd_accel_single_host off
httpd_accel_uses_host_header on
注意:編譯Squid時(shí)需激活Internal DNS選項(xiàng): --disable-internal-dns
然后設(shè)置設(shè)置反響代理需要的域名解析(加入hosts)如下:
www.xxx.com 111.222.333.444
www.yyy.com 111.222.333.444
www.zzz.com 111.222.333.444
使三個(gè)域名都指向反向代理服務(wù)器的IP地址111.222.333.444。
下面設(shè)置反向代理所需要的DNS入口信息(即設(shè)置內(nèi)部DNS,僅僅是squid在內(nèi)部使用,Internet用戶不可見)。有兩種方法可以設(shè)置內(nèi)部DNS,使用內(nèi)部DNS服務(wù)器來解析或者使用/etc/hosts文件來實(shí)現(xiàn)。
使用內(nèi)部DNS服務(wù)器的資源記錄如下:
www.xxx.com IN A 192.168.0.101
www.yyy.com IN A 192.168.0.102
www.zzz.com IN A 192.168.0.103
如果使用/etc/hosts文件來實(shí)現(xiàn)內(nèi)部DNS(編譯時(shí)應(yīng)使用disable internal dns選項(xiàng)),編輯/etc/hosts文件添加如下條目:
192.168.0.101 www.xxx.com
192.168.0.102 www.yyy.com
192.168.0.103 www.zzz.com
聯(lián)系客服