Squid正反向代理

Squid是什麼

  Squid是一種用來緩衝Internet數據的軟件。它是這樣實現其功能 的,接受來自人們需要下載的目標(object)的請求並適當地處理這些請求。也就是說,如果一個人想下載一web頁面,他請求Squid爲他取得這個頁面。Squid隨之連接到遠程服務器(比如:http://squid.nlanr.net/)並向這個頁面發出請求。然後,Squid顯式地聚集數據到 客戶端機器,而且同時複製一份。當下一次有人需要同一頁面時,Squid可以簡單地從磁盤中讀到它,那樣數據迅即就會傳輸到客戶機上。Squid由一個主要的服務程序squid,一個DNS查詢程序dnsserver,幾個 重寫請求和執行認證的程序,以及幾個管理工具組成。當Squid啓動以後,它可以派生出預先指定數目的dnsserver進程,而每一個 dnsserver進程都可以執行單獨的DNS查詢,這樣一來就大大減少了服務器等待DNS查詢的時間。
SQUID如何工作
[傳統代理]
1.SQUID被綁定到代理服務器的3128端口。
2.客戶端瀏覽器被配置使用代理服務器的3128端口。
3.客戶端不需要配置DNS。4.代理服務器上需要配置代理服務器。
5.客戶端不需要配置缺省路由。
當我們在客戶端瀏覽器中打開一個web請求,比如“http://www.96333.com”,這時將陸續發生以下事件:
1.客戶端使用某一端口(比如1025)連接代理服務器3128端口,請求web頁面“http://www.96333.com”
2.代理服務器向DNS請求“www.96333.com”,得到相應的IP地址2.3.4.5。然後,代理服務器使用某一端口(比如1037)向該IP地址的80端口發起web連接請求,請求web頁面。
3.收到響應的web頁面後,代理服務器把該數據傳送給客戶端。
4.客戶端瀏覽器顯示該頁面。
從www.96333.com的角度看來,連接是在1.2.3.4地1037端口和2.3.4.5的80端口之間建立的。
從client的角度看來,連接是在192.168.1.100的1025端口和1.2.3.4的3128端口之間建立的。
[透明代理]
透明代理的意思是客戶端根本不需要知道有代理服務器的存在。
在以上基礎上我們做以下工作:
1.配置透明代理服務器軟件運行在代理服務器的3128端口。
2.配置代理服務器將所有對80端口的連接重定向到3128端口。
3.配置客戶端瀏覽器直接連解到Internet。
4.在客戶端配置好DNS.
5.配置客戶端的缺省網關爲192.168.1.1.
當我們在客戶端瀏覽器中打開一個web請求,比如“http://www.96333.com”,這時將陸續發生以下事件:
1.客戶端向DNS請求“www.96333.com”,得到相應的IP地址2.3.4.5。然後,客戶端使用某一端口(比如1066)向該IP地址的80端口發起web連接請求,請求web頁面。
2.當該請求包通過透明代理服務器時,被防火牆將該數據包重定向到代理服務器的綁定端口3128。於是,透明
代理服務器用某一端口(比如1088)向2.3.4.5的80端口發起web連接請求,請求web頁面。
3.收到響應的web頁面後,代理服務器把該數據傳送給客戶端。
4.客戶端瀏覽器顯示該頁面。
從www.96333.com的角度看來,連接是在1.2.3.4地1088端口和2.3.4.5的80端口之間建立的。從client的角度看來,連接是在192.168.1.100的1066端口和2.3.4.5的80端口之間建立的。
以上就是傳統代理服務器和透明代理服務器的區別所在。
[反向代理]
反向代理是相對於傳統代理而言,是代理web服務器接受客戶端的請求。在此,我們忽略客戶端的設置,假設客戶端是可以直接訪問互聯網。
web服務器與客戶端的結構如下:
假設已經將www.96333.com的域名指向了squid服務器所在的ip,並且在web服務器集羣裏做了dns輪詢。
web server1 -|
web server2 -|- squid 服務器/ INTERNET / - Client
web server3 -|
1.客戶端通過IE向DNS服務器發送訪問www.96333.com的請求,由客戶所在地的DNS服務器解析www.96333.com的IP爲2.3.4.5並返回給用戶。
2.客戶收到DNS返回的服務器IP地址,重新向www.96333.com指向的IP地址發送訪問請求。
3.squid服務器接收到用戶的請求後,查詢自身緩存中是否有用戶請求內容,有則直接發送給客戶端,如果沒有則通過內部DNS輪詢查詢空閒服務器,並將 客戶請求發送到該服務器,在獲取到用戶數據並返回給用戶的同時保留一份在自己本身的緩存當中。在用戶看來,自己訪問的是www.96333.com這個服 務器,實際上真正的WEB服務器爲SQUID緩存後面的服務器或者服務器集羣,通過外部DNS做CNAME轉向,將用戶請求轉發到內部真正的web服務器 上去。

配置部分
squid正向代理:我的虛擬機目前不能上網 但是真機可以上網  這裏我用我的真機作爲代理服務器,虛擬機通過代理訪問網站

哪臺機器做代理這部分配置就在哪  我的在真機上
yum install -y squid                 ##安裝正向代理
vim /etc/squid/squid.conf
56 http_access allow all             ##允許訪問
62 cache_dir ufs /var/spool/squid 100 16 256   ##創建緩存地點 100M 16個目錄 256個子級目錄
systemctl restart squid
systemctl stop firewalld   ##如果不關防火牆 開啓3128端口的訪問權限
如果防火牆未關
firewall-cmd --permanent --add-port=3128/tcp        
firewall-cmd --reload   



在虛擬機中的瀏覽器: 選擇第一個connection 設置

輸入的IP是真機的ip   能上網的那臺機器的IP

####測試 達到效果  虛擬機不能上網 但是可以打開百度網頁


squid反向代理
這裏使用兩臺虛擬機 ,一臺IP:172.25.8.10  另一臺IP:172.25.8.11
IP:172.25.8.10  開始之前先關掉這臺機器的httpd服務 然後進行如下操作

systemctl stop httpd
vim /etc/squid/squid.conf
 56 http_access allow all
 57 
 58 # Squid normally listens to port 3128
 59 http_port 80 vhost vport
 60 cache_peer 172.25.8.11 parent 80 0 no-query
 61 # Uncomment and adjust the following to add a disk cache directory.
 62 cache_dir ufs /var/spool/squid 100 16 256
systemctl restart squid
systemctl stop firewalld


IP: 172.25.8.11  上進行如下操作

yum install -y httpd
vim /var/www/html/index.html
<h1>172.25.8.10</h1>
systemctl restart httpd

測試:真機瀏覽器訪問172.25.8.10 會訪問到172.25.8.11的http的默認發佈文件


平衡輪詢
IP:172.25.8.10   操作如下

 vim /etc/squid/squid.conf
 56 http_access allow all
 57 
 58 # Squid normally listens to port 3128
 59 http_port 80 vhost vport
 60 cache_peer 172.25.8.250 parent 80 0 no-query originserver round-robin name=w    ebserver1   ###originserver:指定name=webserver1,代表所以信息,以round-robin(輪詢)方式工作
 61 cache_peer 172.25.8.11 parent 80 0 no-query originserver round-robin name=we    bserver2
 62 cache_peer_domain webserver1 webserver2 www.westos.com  ##www.westos.com做輪詢
 63 # Uncomment and adjust the following to add a disk cache directory.
 64 cache_dir ufs /var/spool/squid 100 16 256
systemctl restart squid.service


在IP:172.25.8.250 和IP:172.25.8.11的主機加入解析 這兩臺主機都要安裝httpd並開啓服務

vim /etc/hosts
172.25.8.10 www.westos.com

##在172.25.8.250的主機上
vim /var/www/html/index.html
<h1>172.25.8.250</h1>

測試:真機瀏覽器輸入www.westos.com 







 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章