squid反向代理

squid

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

工做流程

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

b、代理服務器檢查本身的數據緩存web

c、若是本身的緩存裏有客戶端請求的數據後端

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

e、若是本身的緩存裏沒有客戶端請求的數據緩存

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

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

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

squid分類

按照代理類型的不一樣,能夠將Squid代理分爲正向代理和反向代理。tcp

正向代理:意思是一個位於客戶端和原始服務器(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和防火牆關掉
相關文章
相關標籤/搜索