1. 程式人生 > >反向代理---squid的實現

反向代理---squid的實現

emc 數據 更改 system 命令 conf new 20px nbsp

一、目的

通過配置代理服務器,實現以下目標:

  1. 代理服務器可以將遠程的Web服務器頁面緩存在本地

  2. 代理服務器端口設置為80端口

  3. 用戶通過訪問代理服務器即可獲得遠程Web服務器上的頁面內容

  4. 遠程Web服務器對客戶端用戶是透明的

  5. 利用緩存機制提高網站的響應速度

二、方案

使用3臺RHEL7虛擬機,其中一臺作為Squid代理服務器(B主機),該服務器用來連接兩個網段,因此需要配置兩塊網卡,地址分別為192.168.4.102和192.168.2.102。一臺作為客戶端測試主機(主機A),IP地址為192.168.4.101。一臺Web服務器(主機C),地址為192.168.2.103,該Web服務器為其他代理提供Web數據源。


三、實現步驟

1、在主機C上安裝web軟件包,啟動服務,開機自啟

yum -y install httpd systemctl restart httpd systemctl enable httpd

2、為Web訪問建立測試文件:在網站根目錄/var/www/html下創建一個名為index.html的首頁文件

echo "test" > /var/www/html/index.html

3、部署squid代理服務器,在主機B上安裝squid代理軟件

yum -y install squid.x86_64

4、修改/etc/squid/squid.conf配置文件:vim /etc/squid/squid.conf

56 http_access allow all //允許所有的主機可以訪問

59 http_port 80 vhost //設置反向代理,並更改端口為80

60 visible_hostname www.haha.com

//設置主機名,默認沒有該語句,主機名就是後面你需要訪問的實際網站,我這裏隨便取一個名字

61 cache_peer 192.168.2.103 parent 80 0 originserver //定義後端真實服務器信息,默認沒有,需自己手動添加,原始的服務器是192.168.2.103

64 cache_dir ufs /var/spool/squid 200 16 256 //硬盤緩存,緩存容量為200M,自動創建16個一級子目錄和256個二級子目錄

5、啟動squid服務,並設置為開機啟動:

systemctl start squid; systemctl enable squid

6、squid服務通過TCP 80端口監聽客戶端請求,可以用下面的命令來查看

netstat -anptu | grep 80

四、測試

客戶端192.168.4.101訪問192.168.4.102,開啟瀏覽器訪問,返回的頁面是192.168.2.103的頁面。因為我這裏沒有做DNS,所以直接用IP來訪問


註:squid代理主要是用磁盤空間來做緩存




















反向代理---squid的實現