1. 程式人生 > >Linux之Squid(正向代理和反向代理)

Linux之Squid(正向代理和反向代理)

正向代理(實驗條件:(真機)IP:172.25.254.4能上網;虛擬機器IP:172.25.254.104不能上網;讓虛擬機器使用代理去聯網)

正向代理 是位於客戶端和原始伺服器之間的伺服器,為了從原始伺服器取得內容,客戶端向代理髮送一個請求並指定目標(原始伺服器),然後代理向原始伺服器轉交請求並將獲得的內容返回給客戶端。

1.配置真機網路

vim /etc/sysconfig/network-scripts/ifcfg-eth0
vim  /etc/resolv.conf      
: nameserver 114.114.114.114 ##配置虛擬機器閘道器,先讓真機能上網
systemctl restart network
2.下載代理軟體

yum install squid.x86_64  -y     ##代理軟體


vim /etc/squid/squid.conf   

# And finally deny all other access to this proxy
56 :http_access allow all      ##允許所有的訪問

# Uncomment and adjust the following to add a disk cache directory.

62 :cache_dir ufs /var/spool/squid 100 16 256 ###100:最大快取100M;


systemctl restart squid                             ###重啟代理
firewall-cmd --permanent --add-port=3128/tcp         ##開啟埠3128;代理埠是3128
firewall-cmd --reload                                ##重新整理
3.配置虛擬機器

(1)在preferences-->Advanced-->Network-->settings-->manual proxy configuration-->http proxy:代理主機IP; port:3128-->點選use this proxy server for all protocols

(2)使用代理,輸入網址和埠

(3)測試:

成功訪問百度

注意:成功上網;因為使用的是虛擬機器的代理,可以上網但是ping不通

反向代理:(實驗條件:三臺主機:客戶端IP:172.25.254.104;代理端IP:172.25.254.204;服務端IP:172.25.254.4)


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

1.在服務端
vim /var/www/html/index.html      ###寫好預設釋出檔案


2.在代理端
yum install squid.x86_64  -y
vim /etc/squid/squid.conf                  ##編輯配置檔案

http_access allow all
http_port 80 vhost vport                    ##80:服務端埠
cache_peer 172.25.254.4 parent 80 0 no-query   ##cache_peer:快取策略;172.25.254.4(服務端IP,快取服務端讓客戶端檢視); parent:沒有備用的代理;80:服務端埠為80;0:沒有備用埠;no-query:沒有備用的代理
# Uncomment and adjust the following to add a disk cache directory.
cache_dir ufs /var/spool/squid 100 16 256

systemctl restart squid                      ###重啟代理

3.在客戶端
輸入代理端IP,成功訪問服務端的釋出檔案


平衡輪循:把訪問量分散開

一定要關閉排程端防火牆!!!
1.在排程端(提供輪循排程)
vim /etc/squid/squid.conf
:
# And finally deny all other access to this proxy
http_access allow all
# Squid normally listens to port 3128
http_port 80 vhost vport
cache_peer 172.25.254.4 parent 80 0 no-query originserver round-robin name=web1      
cache_peer 172.25.254.5 parent 80 0 no-query originserver round-robin name=web2
cache_peer_domain web1 web2 www.westos.com

(originserver:源伺服器)

# Uncomment and adjust the following to add a disk cache directory.
cache_dir ufs /var/spool/squid 100 16 256


2.在客戶端
(1)進行地址解析:
vim /etc/hosts
:172.25.254.204(代理端,也就是排程端IP)   www.westos.com    ##訪問www.westos.com就要在客戶端解析該地址


(2)進行訪問
瀏覽器每重新整理一次會訪問排程端指定的兩個主機(4和5);這樣一來把大量的訪問資料分散開來,但是訪問的資訊不會被改變,同時緩解了伺服器的壓力,客戶端也感到訪問速度的增加。

測試:

兩個主機是相同的,保證了訪問資訊的一致性,