歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> 關於Linux >> Linux下DNS輪詢與Squid反向代理結合

Linux下DNS輪詢與Squid反向代理結合

日期:2017/3/2 9:58:41   编辑:關於Linux

一、安裝反向代理服務器 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服務器之間的聯系。

Copyright © Linux教程網 All Rights Reserved