squid
Squid cache(簡稱爲Squid)是一個流行的自由軟件,它符合GNU通用公共許可證。Squid作爲網頁服務器的前置cache服務器,可以代理用戶向web服務器請求數據並進行緩存,也可以用在局域網中,使局域網用戶通過代理上網。Squid主要設計用於在Linux一類系統運行。
Squid是一個緩存internet數據的一個軟件,它接收用戶的下載申請,並自動處理所下載的數據。也就是說,當一個用戶想要下載一個主頁時,它向Squid發出一個申請,要Squid替它下載,然後Squid 連接所申請網站並請求該主頁,接着把該主頁傳給用戶同時保留一個備份,當別的用戶申請同樣的頁面時,Squid把保存的備份立即傳給用戶,使用戶覺得速度相當快。
squid優點
加快訪問速度,節約通信帶寬
防止內部主機受到***
限制用戶訪問,完善網絡管理
3.代理服務器原理
代理服務器接受到請求後,首先與訪問控制列表中的訪問規則相對照,如果滿足規則,則在緩 存中查找是否存在需要的信息。
客戶端B向代理服務器提出相同的請求。代理服務器也首先與訪問控制列表中的訪問規則相對 照。如果滿足規則,則將緩存中的信息傳送給客戶端B
4. Squid 主要組成部分
服務名:squid
主程序:/usr/sbin/squid
配置目錄:/etc/squid
主配文件:/etc/squid/squid.conf
監聽tcp端口號:3128
默認訪問日誌文件:/var/log/squid/access.log
以下是一些squid的基本配置參數解釋(三種代理基本配置)
http_port 3128 //設置監聽的IP與端口號
cache_mem 64 MB //設置內存緩衝的大小
cache_dir ufs /var/spool/squid 2000 16 256 //設置硬盤緩衝大小
//ufs 存儲格式 2000 目錄空間 16一級子目錄 256 二級子目錄
cache_effective_user squid //設置緩存的有效用戶
cache_effective_group squid //設置緩存的有效用戶組
dns_nameservers 192.168.0.254 //設置DNS服務器地址,一般可以不設置,默認使用服務器自己設置的dns
cache_access_log /var/log/squid/access.log //設置訪問日誌文件
cache_log /var/log/squid/cache.log //設置緩存日誌文件
visible_hostname 192.168.0.20 //設置squid主機名稱
以上全局參數根據你自己的需要修改
其實linux下的服務器配置文件最好就是squid,它對每個參數都有解釋,而且很多有很多實例
5.squid中的訪問控制
語法:acl 列表名稱 列表類型 [-i] 列表值
列表類型
* src : 源地址 (即客戶機IP地址)
* dst : 目標地址 (即服務器IP地址)
* srcdomain : 源名稱 (即客戶機名稱)
* dstdomain : 目標名稱 (即服務器名稱)
* time : 一天中的時刻和一週內的一天
* url_regex : URL 規則表達式匹配
* urlpath_regex: URL-path 規則表達式匹配,略去協議和主機名
* proxy_auth : 通過外部程序進行用戶驗證
* maxconn : 單一 IP 的最大連接數
6squid三種代理
a 普通代理
一個標準的代理緩衝服務被用於緩存靜態的網頁(例如:html文件和圖片文件等)到本地網絡上的一臺主機上(即代理服務器)。當被緩存的頁面被第二次訪問的時候,瀏覽器將直接從本地代理服務器那裏獲取請求數據而不再向原web站點請求數據。這樣就節省了寶貴的網絡帶寬,而且提高了訪問速度。但是,要想實現這種方式,必須在每一個內部主機的瀏覽器上明確指明代理服務器的IP地址和端口號。客戶端上網時,每次都把請求送給代理服務器處理,代理服務器根據請求確定是否連接到遠程web服務器獲取數據。如果在本地緩衝區有目標文件,則直接將文件傳給用戶即可。如果沒有的話則先取回文件,先在本地保存一份緩衝,然後將文件發給客戶端瀏覽器。
客戶端端要在自己的瀏覽器裏指定代理服務器的ip 和監聽的端口,才能通過代理服務器訪問
b透明代理
明代理緩衝服務和標準代理服務器的功能完全相同。但是,代理操作對客戶端的瀏覽器是透明的(即不需指明代理服務器的IP和端口)。透明代理服務器阻斷網絡通信,並且過濾出訪問外部的HTTP(80端口)流量。如果客戶端的請求在本地有緩衝則將緩衝的數據直接發給用戶,如果在本地沒有緩衝則向遠程web服務器發出請求,其餘操作和標準的代理服務器完全相同。對於Linux操作系統來說,透明代理使用Iptables或者Ipchains實現。因爲不需要對瀏覽器作任何設置,所以,透明代理對於ISP(Internet服務器提供商)特別有用。
配置:
客戶端不需要在瀏覽器裏指定代理服務器的ip地址和監聽的端口,只要把網關地址指向代理服務器內網接口的Ip地址就可以了。
服務器上的配置與標準的代理緩衝服務器幾乎一樣
防火牆規則
iptables -t nat -A PREROUTING -i eth0 -s 1。1.1.0/8 -p tcp --dport 80 -j REDIRECT --to-port 3128
service iptables save 保存規則
-i 指定數據包進入的接口
-s 指定數據包來自於哪個網段
-p 數據傳輸協議
--dport 目標端口
客戶端
c反向代理
反向代理是和前兩種代理完全不同的一種代理服務。使用它可以降低原始WEB服務器的負載。反向代理服務器承擔了對原始WEB服務器的靜態頁面的請求,防止原始服務器過載。它位於本地WEB服務器和Internet之間,處理所有對WEB服務器的請求,組織了WEB服務器和Internet的直接通信。如果互聯網用戶請求的頁面在代理服務器上有緩衝的話,代理服務器直接將緩衝內容發送給用戶。如果沒有緩衝則先向WEB服務器發出請求,取回數據,本地緩存後再發送給用戶。這種方式通過降低了向WEB服務器的請求數從而降低了WEB服務器的負載。
配置:
cache_peer指定後端真正的網站服務器的ip地址,parent 當前代理服務器與後端網站服務器的關係,80 網站服務器監聽的端口號,0 當前代理服務器與網絡中其他代理服務器通信的接口,originserver 指定提供網站服務的真正的主機
客戶端訪問代理服務器,再由代理服務器來訪問相應的web服務
看反向代理成功了。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。