將不一樣的URL請求分發到後臺不一樣的Web服務器上,經過squid反向代理,能夠加速網站的訪問速度,同時互聯網用戶只能看到反向代理服務器的地址,增強網站的訪問安全html
Squid反向代理原理web
Squid反向代理服務器位於本地Web服務器和Internet之間,客戶端請求訪問Web服務器時,DNS將訪問的域名解析爲Squid反向代理服務器的IP地址,客戶端將訪問Squid代理服務器。若是Squid反向代理服務器緩存了該請求的資源,則將該請求的資源返回給客戶端,不然反向代理服務器將向後臺的Web服務器請求資源,而後將應答資源返回給客戶端,同時也將該資源在本地緩存一份,供下一個請求使用vim
實驗環境 : 後端
代理服務器IP(CnetOS7):192.168.94.11(NAT) 192.168.111.11(VMnet3)緩存
客戶端IP(Windows):192.168.111.22(VMnet3) 安全
真實服務器1(CnetOS7):192.168.94.22(NAT)服務器
真實服務器2(CnetOS7):192.168.94.33(NAT)dom
以前作的透明代理的時候作的防火牆策略 , 要把策略清一下 , 把備份的配置文件還原 , 否則測試會出問題測試
[root@squit squid]# vim /etc/squid.conf # 定義兩個個基於域名的控制列表,分別命名爲web1,web2 acl web1 dstdomain www.damowang.cn acl web2 dstdomain www.damowang.cn
# 容許以web1,web2爲目標域名的訪問 http_access allow web1 web2
# 將端口監聽在 192.168.94.11的80端口上,accel 指啓用加速模式,vhost,vport用於轉發請求 http_port 192.168.94.11:80 accel vhost vport
# cache_peer 指定後端服務器地址,80 爲後端服務端口,0 爲 ICP 端口號(多個 Squid 時用),originserver 指定資源服務器,round-robin指使用輪詢方式,weight指的是權重,自由分配,name 指定一個別名 cache_peer 192.168.94.22 parent 80 0 no-query originserver round-robin weight=1 name=web1 cache_peer 192.168.94.33 parent 80 0 no-query originserver round-robin weight=1 name=web2
cache_peer_domain web1 web2 www.damowang.cn # 再4版本以前是用於域名輪詢的 , 如今徹底經過訪問控制來實現 , 若是加上這句 , 檢查語法時會報錯網站
若是用的是新版本的squid 這是須要注意的
配置Web服務器
[root@web1 ~]# yum -y install httpd [root@web1 ~]# systemctl start httpd [root@web1 ~]# echo "<h1>Squid-Web1</h1>" > /var/www/html/index.html [root@web2 ~]# yum -y install httpd [root@web2 ~]# systemctl start httpd [root@web2 ~]# echo "<h1>Squid-Web2</h1>" > /var/www/html/index.html
Windows配置 , 測試
客戶實際訪問的是代理服務器 , 並不知道真實Web服務器的IP