Python google Android centos shell php Windows mysql linux wordpress nginx java 开源 微软 Firefox apache HTML5 程序员 linux命令 Ubuntu

Linux之代理缓存服务

  squidLinux系統中最為流行的一款高性能代理服務軟件,通常用作Web網站的前置緩存服務,能夠代替用戶向網站服務器請求頁面數據並進行緩存。簡單來說,Squid服務程序會按照收到的用戶請求向網站源服務器請求頁面、圖片等所需的數據,並將服務器返回的數據存儲在運行Squid服務程序的服務器上。當有用戶再請求相同的數據時,則可以直接將存儲服務器本地的數據交付給用戶,這樣不僅減少了用戶的等待時間,還緩解了網站服務器的負載壓力。

  Squid服務程序具有配置簡單、效率高、功能豐富等特點,它能支持HTTP、ftp、SSL等多種協議的數據緩存,可以基於訪問控制列表(ACL)和訪問權限列表(ARL)執行內容過濾與權限管理功能,還可以基於多種條件禁止用戶訪問存在威脅或不適宜的網站資源,因此可以保護企業內網的安全,提升用戶的網絡體驗,幫助節省網絡帶寬。

 由於緩存代理服務不但會消耗服務器較多的CPU計算性能、內存以及硬盤等硬件資源,同時還需要較大的網絡帶寬來保障數據的傳輸效率,由此會造成較大的網絡帶寬開銷。因此國內很多IDC或CDN服務提供商會將緩存代理節點服務器放置在二三線城市以降低運營成本。

 在使用Squid服務程序為用戶提供緩存代理服務時,具有正向代理模式和反向代理模式之分。

 所謂正向代理模式,是指讓用戶通過Squid服務程序獲取網站頁面等資源,以及基於訪問控制列表(ACL)功能對用戶訪問網站行為進行限制,在具體的服務方式上又分為標準代理模式與透明代理模式。標準正向代理模式是把網站數據緩存到服務器本地,提高數據資源被再次訪問時的效率,但是用戶在上網時必須在瀏覽器等軟件中填寫代理服務器的ip地址與端口號信息,否則默認不使用代理服務。而透明正向代理模式的作用與標準正向代理模式基本相同,區別是用戶不需要手動指定代理服務器的IP地址與端口號,所以這種代理服務對於用戶來講是相對透明的。

 使用Squid服務程序提供正向代理服務的拓撲如圖16-1所示。局域網內的主機如果想要訪問外網,則必須要通過Squid服務器提供的代理才行,這樣當Squid服務器接收到用戶的指令後會向外部發出請求,然後將接收到的數據交還給發出指令的那個用戶,從而實現了用戶的代理上網需求。另外,從拓撲圖中也不難看出,企業中的主機要想上網,就必須要經過公司的網關服務器,既然這是一條流量的必經之路,因此企業一般還會把Squid服務程序部署到公司服務器位置,並通過稍後講到的ACL(訪問控制列表)功能對企業內員工進行上網審計及限制。

延伸阅读

评论