squid反向代理


squid

Squid是一個高性能的代理緩存服務器,Squid支持FTP、gopher和 HTTP協議。和一般的代理緩存軟件不同,Squid用一個單獨的、非模塊化的、I/O驅動的進程來處理所有的客戶端請求。

工作流程

a、代理服務器來接受客戶端t上的連接請求

b、代理服務器檢查自己的數據緩存

c、如果自己的緩存里有客戶端請求的數據

d、代理服務器從緩存中取出數據,返回給客戶端

e、如果自己的緩存里沒有客戶端請求的數據

f、代理服務器向Internet 上的遠端服務器發送數據請求

g、遠端服務器響應,返回相應的數據

h、代理服務器取得遠端服務器的數據,返回給客戶端,並保留一份到自己的數據緩存中。

squid分類

按照代理類型的不同,可以將Squid代理分為正向代理和反向代理。

正向代理:意思是一個位於客戶端和原始服務器(origin server)之間的服務器,為了從原始服務器取得內容,客戶端向代理發送一個請求並指定目標(原始服務器),然后代理向原始服務器轉交請求並將獲得的內容返回給客戶端。客戶端才能使用正向代理。

根據實現方式的不同,又可以分為普通代理和透明代理:
a、普通代理:需要客戶機在瀏覽器中指定代理服務器的地址、端口;
b、透明代理:適用於企業的網關主機(共享接入Internet)中,客戶機不需要指定代理服務器地址、端口等信息,代理服務器需要設置防火牆策略將客戶機的Web訪問數據轉交給代理服務程序處理;

反向代理:是指以代理服務器來接受internet上的連接請求,然后將請求轉發給內部網絡上的服務器,並將從服務器上得到的結果返回給internet上請求連接的客戶端,此時代理服務器對外就表現為一個服務器。

這里我用squid做web的代理緩存服務器

 

主機

ip地址

client

eth0(192.168.4.10)

proxy

eth0(192.168.4.11)

eth1(192.168.2.11)

web

eth1(192.168.2.10)

 web服務器

1)使用yum安裝web軟件包

[root@web ~]# yum -y install httpd

2)啟用httpd服務,並設為開機自動運行

[root@web ~]# echo "web" >/var/www/html/index.html

 httpd服務默認通過TCP 80端口監聽客戶端請求:

[root@web ~]# netstat -anptu | grep 80
tcp6       0      0 :::80                   :::*                    LISTEN      18610/httpd         

代理服務器proxy

1)使用yum安裝squid軟件包:

[root@proxy ~]# yum -y install squid.x86_64 

2)修改/etc/squid/squid.conf配置文件:

http_port 80 vhost    #設置監聽的IP與端口號
visible_hostname proxy.com  #主機名
cache_peer 192.168.2.10 parent 80 0 originserver #定義后端真實服務器信息
cache_dir ufs /var/spool/squid 100 16 256   #定義squid的cache存放路徑 、cache目錄容量(單位M)、一級緩存目錄數量、二級緩存目錄數量 http_access allow all                         #允許本機所有主機使用代理服務器

 3)啟動squid服務,並設置為開機啟動:

[root@proxy ~]# systemctl restart squid.service
[root@proxy ~]# systemctl enable squid.service
Created symlink from /etc/systemd/system/multi-user.target.wants/squid.service to /usr/lib/systemd/system/squid.service.

 4)squid服務通過TCP 80端口監聽客戶端請求:

[root@proxy ~]# netstat -anptu | grep 80
tcp6       0      0 :::80                   :::*                    LISTEN      18883/(squid-1)

客戶端開啟瀏覽器訪問 

[root@client ~]# curl http://192.168.4.11        #訪問代理服務器,代理服務器會返回web服務器的內容
web

 

做配置之前需要報selinx和防火牆關掉

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM