知識庫
什么是Squid代理服務器?squid是一款代理的軟件,通過緩存的方式為用戶提供Web訪問加速對用戶的Web訪問進行過濾控制,可以很好地實現HTTP和FTP,以及DNS查詢、SSL等應用的緩存代理,功能十分強大,Squid支持FTP、gopher、HTTPS和HTTP協議。
和一般的代理緩存軟件不同,Squid用一個單獨的、非模塊化的、I/O驅動的進程來處理所有的客戶端請求。Squid主要提供緩存加速、應用層過濾控制的功能。
Squid代理服務器搭建:http://www.ukunilife.com/cloud/hk.html
詳細了解Squid代理服務器:
一、 Squid代理的工作機制
代替客戶機向網站發送請求數據,從而可以隱藏真正用戶的IP。將獲得的網頁數據(靜態Web元素)保存到緩存中并發送給客戶機,以便下次請求相同的數據時快速響應。
Squid是一個緩存Internet數據的一個軟件,它接收用戶的下載申請,并自動處理所下載的數據
也就是說,當一個用戶想要下載一個主頁時,它向Squid發出一個申請,要Squid替它下載,然后Squid連接所申請網站并請求該主頁,接著把該主頁傳給用戶同時保留一個備份,當別的用戶申請同樣的頁面時,Squid把保存的備份立即傳給用戶,減少了向Internet提交重復的Web請求的過程,提高了用戶下載網頁的速度,隱藏了客戶機的真實IP:
二、Squid代理作用
1、資源獲取:代替客戶端實現從原始服務器的資源獲取;
2、加速訪問:代理服務器可能離原始服務器更近,從而起到一定的加速作用;
3、緩存作用:代理服務器保存從原始服務器所獲取的資源,從而實現客戶端快速的獲取;
4、隱藏真實地址:代理服務器代替客戶端去獲取原始服務器資源,從而隱藏客戶端真實信息。
三、Squid代理的類型
1)傳統代理:適用于Internet正向代理,需要在客戶機指定代理服務器的地址和端口
2)透明代理:客戶機不需要指定代理服務器的地址和端口,而是通過默認路由、防火墻策略將Web訪問重定向給代理服務器處理
3)反向代理:如果Squid反向代理服務器中緩存了該請求的資源,則將該請求的資源直接返回給客戶端;否則反向代理服務器將向后臺的Web服務器請求資源,然后將請求的應答返回給客戶端,同時也將該資源緩存在本地,為下一個請求者直接提供資源使用
四、其他的代理、緩存服務器軟件
除了squid之外,代理軟件還有nginx、Varnish也能充當代理服務器。
nginx:nginx的四層/七層代理,可以實現反向代理Web集群,但是nginx只能緩存靜態文件,在業務中,nginx只做反向代理+動靜分離,而不會選擇它去做緩存服務器,因為太單一(只能緩存靜態文件),而且nginx是依賴第三方模塊來完成緩存業務的,并不是專業的緩存服務。
Varnish:它是一款高性能的、開源的反向代理服務器和緩存服務器,它和squid相比具有更好的穩定性、更快的訪問速度、更多的并發連接數,可以通過端口來管理緩存,這是squid做不到的。但是,在高并發情況下,Varnish會消耗更多的CPU、I/O和內存資源;而且當Varnish進程一旦掛起、崩潰或者重啟,緩存的數據會從內存中釋放,此時所有的請求都會轉發到Web服務器上,給后端服務器造成很大的壓力,而且它只支持反向代理。
如果因為工作的需要,我們優選選擇squid或者Varnish,然后根據具體的業務進行評估,篩選出合適的軟件來構建代理和緩存服務器。
總結,squid的三種代理模式:正向、反向、透明,了解完squid、varnish、nginx三種軟件的區別以及各自的優缺點,防火墻和selinux要記得關,牢記緩存服務器的工作原理:緩存服務器有,就直接從緩存服務器拿,而不需要再去訪問Web服務器;沒有再去找Web服務器,得到數據后,緩存服務器會將該數據存到本地,只要不宕機,以后的每次訪問,都會直接從緩存服務器讀取,降低了web服務器的壓力。