squid是應用層的代理服務軟件 主要提供緩存加速,應用層過濾控制的功能。可以基於squid做傳統代理,透明代理,反向代理。
主配置文件常用項的含義:
- http_port 3128 //監聽端口 如只監聽一個IP的端口的話 格式:
- 192.168.1.1:3128
- cache_mem 60MB //緩存功能的內存大小, 設爲物理內存的1/4,1/3
- maximum_object_size 4096KB //允許保存到高速緩存的最大對象大
- 小,超過的話不緩存 直接給客戶
- reply_body_max_size 10240000 allow all
- //允許用戶下載最大文件大小,默認字節, all是訪問控制列表的名稱
- access_log /var/log/squid/access.log squid 日誌存放位置和格式
- visible_hostname proxy.example.com //代理服務器的主機名
- dns_testnames www.baidu.com //測試DNS是否正常
- cache_dir ufs/var/spool/squid 100 16 256
- //設置緩存數據時使用的目錄參數, ufs是squid的緩存文件格式, /var/spool/squid是緩存數據存放的目錄 後面的三個是 緩存可以使用的磁盤大小MB,一級子目錄個數,二級子目錄個數
配置傳統的代理:
1:配置Squid代理服務器端:vi /etc/squid.conf
- http_port 3128
- visible_hostname www.example.com
- reply_body_max_size 10240000 allow all
- http_access allow all //查找修改這行,或者就是放到 xxxxx den
- y之前
2:初始化並啓動代理服務器
service squid start //可直接調用suqid -z 初始化緩存目錄
//squid -D 直接啓動 -D不進行dns查詢
//squid -K reconfigure 從新加載配置文件
日誌文件在 /var/log/squid/access.log
透明代理的配置:
1.配置squid支持透明代理
http_port 192.168.1.1:3128 transparent
2:設置iptables重定向
REDIRECT(重定向)只能在nat表的PREROUTING和OUTPUT鏈被調用
- iptables -t nat -I PREROUTING -i eth1 -s 192.168.1.0/24 -p tcp --dport 80 -j REDIRECT --to-ports 3128
配置反向代理:
1:添加反向代理支持(squid有2網卡)
http_port 218.29.20.21:80 vhost
2:指定web服務器的主機位置
cache_peer web的地址 服務器類型 http端口 icp端口 [可選項]
【服務類型對應到目標主機的緩存級別,上游的web主機使用parent;icp端口用於鏈接相鄰的ICP緩存服務器通常是另一臺squid,沒有就用0 可選項是提供緩存時候的一些參數 originserver 表示提供web服務的原始主機 weight= 權重 數字越大優先級越高 max-conn= 反向代理主機到web的最大鏈接數】
如:cache_peer 192.168.10.14 parent 80 0 originserver weight=5 max-conn= 10
重啓就好了!!!
ACL的配置:
acl和squid主配置文件的http_access共同使用
定義ACL
acl 列表名稱 列表類型 列表內容
【名稱自定義 類型需使用squid的預定義值 內容根據類型定義 多個內容的關係的是”或“ 滿足一個就匹配成功】