一、安裝反向代理服務器 1.下載反向代理服務器軟件采用squid,下載地址: http://www.squid-cache.org/Versions/v2/2.2/squid-2.2.STABLE5-src.tar.gz 下載後存放在/usr/local/squid/src目錄裡,文件名是 squid-2.2.STABLE5 ...
一、安裝反向代理服務器
1.下載反向代理服務器軟件采用squid,下載地址:
http://www.squid-cache.org/Versions/v2/2.2/squid-2.2.STABLE5-src.tar.gz
下載後存放在/usr/local/squid/src目錄裡,文件名是
squid-2.2.STABLE5-src.tar.gz ;
2.解壓代理服務器軟件包:
進入/usr/local/squid/src目錄,鍵入如下命令:
gzip -dc squid-2.2.STABLE5-src.tar.gz | tar -xvf -
這個命令將代理服務器軟件包解開,建立一個目錄叫作squid-2.2.STABLE5,並且把所有的文件放在這個目錄裡面。
3. 編譯源程序
首先運行配置腳本,以便生成適合您的機器的編譯腳本。命令格式是:
./configure
這種方式產生的編譯腳本編譯後默認安裝路徑是/usr/local/squid。
如果想改變安裝路徑,需要用以下格式:
./configure -prefix=/some/other/directory
這種方法編譯後安裝到/some/other/directory裡面。
生成編譯腳本後,可以正式開始編譯了。命令為:
make
4、 安裝Squid代理服務器
編譯通過後,用以下命令安裝:
make install
安裝完成後,會在您指定的安裝路徑裡產生一個squid目錄,squid目錄下有三個目錄:etc、bin、logs。其中etc裡面是配置文件,bin裡面是執行文件,logs裡面是日志文件。
二、調試反向代理服務器
安裝結束後就是調試服務器,使其按照您的要求工作。Squid的配置文件只有一個,在etc目錄裡,名字是squid.conf,所有的配置選項都在這個文件裡面。而且每個配置項目都有注釋說明。我們只介紹與反向代理有關的幾個項目。
首先,在squid文件裡面找到下列配置項:
cache_mem
這裡可以添上您准備給squid作為高速緩存使用的內存大小。注意,如果您的機器有N兆內存,那麼,推薦您在這裡添的數字是N/3。
cache_dir /usr/local/squid/cache 100 16 256
這裡的第一個數字100是您准備給squid作為cache使用的硬盤空間大小,單位是兆。如果您想劃100M空間當作cache,那麼這裡就寫100。
acl, http_access, icp_access
填寫"allowedip"和"allowedip1"ACL訪問控制列表。這裡應該填寫你對外公開的服務器的IP,比如此例的兩個WEB服務器對應的外部地址為202.99.157.10 和 202.99.157.18,
acl manager proto cache_object
acl localhost src 127.0.0.1/255.255.255.255
acl all src 0.0.0.0/0.0.0.0
acl allowedip src 202.99.157.10/255.255.255.255
acl allowedip1 src 202.99.157.18/255.255.255.255
http_access deny manager all
http_access allow allowedip
http_access allow allowedip1
http_access deny all
icp_access allow allowedip
icp_access allow allowedip1
icp_access deny all
cache_mgr [email protected]
這裡填寫cache管理員的Email地址,系統出錯會自動提醒cache管理員。
******以上部分均為squid的通用設置以下為關於反向代理部分的設置******
httpd_accel_host test.com.cn
httpd_accel_host test1.com.cn
此處設置反向代理的主機名
httpd_accel_port 80
此處設置反向代理的WEB服務端口號
#httpd_accel_with_proxy off
此處設置開反向代理的同時,是否開普通代理服務
修改完配置文件,在正式運行squid代理服務器之前,先進行初始化。命令如下:
% /usr/local/squid/bin/squid -z
% /usr/local/squid/bin/squid
檢查cache.log文件確保所有部分運行正常。如果有出錯信息或系統不能正常啟動,一般情況是由於目錄和文件的存取權限導致的,請仔細檢查各目錄和文件的權限設置。其中特別需要注意的是初始化之前應該將squid目錄設置成可寫,然後將創建的cache目錄和logs目錄設置成可寫。如果一切正常,那麼就可以投入使用了。系統默認的服務端口是3128。
反向代理服務器軟件安裝完畢後,將該服務器在80端口的http服務設置成不啟用。
三、調整DNS服務器設置
假設DNS服務器(以下稱標准DNS服務器)將test.com.cn解析為202.99.157.10,將test1.com.cn解析為 202.99.157.18,那麼我們在配置反向代理服務器這台機器的DNS服務時(我們以下稱為內部DNS服務器),可以針對內部地址的WEB做如下變換:
主機名 標准DNS解析為 內部
DNS解析為
http://www.test.com.cn/ 202.99.157.10 192.168.1.10
http://www.test1.com.cn/ 202.99.157.18 192.168.1.18
然後把202.99.157.10和202.99.157.18這兩個IP綁定到反向代理服務器上,這樣,外界對 http://www.test.com.cn/和http://www.test1.com.cn/ 的訪問就會由標准DNS解析到反向代理服務器上,默認WEB服務器的服務端口是80,但是由於反向代理服務器的80端口的http服務已經終止,此時的訪問會沒有結果。為了能使該訪問請求能夠成功完成,需要在反向代理服務器和真實的http://www.test.com.cn/ 和http://www.test1.com.cn/ 的WEB服務器之間建立聯系。要和有內部地址的真實WEB服務器建立聯系,首先反向代理服務器上需要再綁定一個內部IP,比如192.168.1.2,其余部分由transproxy這個透明代理軟件來完成。Transproxy服務軟件通過設置,啟用端口81和squid建立聯系,把內部DNS對 http://www.test.com.cn/和http://www.test1.com.cn/的解析地址傳給squid服務器,然後通過 squid.conf裡面關於服務器端口的設置,將服務端口設置為80,這樣,squid就訪問內部真實WEB服務器192.168.1.10和 192.168.1.18的80端口,把需要訪問的WEB內容取回來,放在squid的cache裡供外界訪問。透明代理軟件transproxy設置完成後,需要通過設置ipchains規則,將外界發往反向代理服務器的80端口的http請求轉發到transproxy 的81端口,這樣就建立了外界通過反向代理間接和真實WEB服務器之間的聯系。