a、代理服務器來接受客戶端t上的鏈接請求html
b、代理服務器檢查本身的數據緩存web
c、若是本身的緩存裏有客戶端請求的數據後端
d、代理服務器從緩存中取出數據,返回給客戶端瀏覽器
e、若是本身的緩存裏沒有客戶端請求的數據緩存
f、代理服務器向Internet 上的遠端服務器發送數據請求服務器
g、遠端服務器響應,返回相應的數據網絡
h、代理服務器取得遠端服務器的數據,返回給客戶端,並保留一份到本身的數據緩存中。curl
按照代理類型的不一樣,能夠將Squid代理分爲正向代理和反向代理。tcp
正向代理:意思是一個位於客戶端和原始服務器(origin server)之間的服務器,爲了從原始服務器取得內容,客戶端向代理髮送一個請求並指定目標(原始服務器),而後代理向原始服務器轉交請求並將得到的內容返回給客戶端。客戶端才能使用正向代理。模塊化
根據實現方式的不一樣,又能夠分爲普通代理和透明代理:
a、普通代理:須要客戶機在瀏覽器中指定代理服務器的地址、端口;
b、透明代理:適用於企業的網關主機(共享接入Internet)中,客戶機不須要指定代理服務器地址、端口等信息,代理服務器須要設置防火牆策略將客戶機的Web訪問數據轉交給代理服務程序處理;
反向代理:是指以代理服務器來接受internet上的鏈接請求,而後將請求轉發給內部網絡上的服務器,並將從服務器上獲得的結果返回給internet上請求鏈接的客戶端,此時代理服務器對外就表現爲一個服務器。
主機 |
ip地址 |
client |
eth0(192.168.4.10) |
proxy |
eth0(192.168.4.11) eth1(192.168.2.11) |
web |
eth1(192.168.2.10) |
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
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和防火牆關掉