squid 代理缓存
squid 可以将ssl请求可以直接发至源服务器或者其他代理服务器
访问控制列表、缓存层次、http服务加速
类型:系统V管理的服务
软件包: squid
守护进程:/usr/sbin/squid
脚本:/etc/init.d/squid
端口:默认3128 可配置
配置文件:/etc/squid/*
so
源地址(客户端) 和 目标地址(服务器端)
比较有用的参数
squid_port 3128
cache_mem 内存缓存 如果只做代理就设置1/2 如果还有其他服务就1/3
cache_dir ufs /var/spool/squid 100 16 256 100cache 16一级目录 256二级目录
acl all src 0.0.0.0/0.0.0.0
acl localhost src 127.0.0.1/255.255.255.255
http_access allow localhost
http_access deny
这个allow和deny是有顺序规定的 allow必须在deny上边
类型选择
src 客户机IP
dst 服务器IP
srcdomain 客户机域
dstdomain 服务器域
time 一天中的时候或者一周中的一天
url_regex url规则表达匹配
urlpath_regex;URL-path 略去协议和主机名的url规则表达式匹配
proxy_auth 通过外部程进行用户验证
maxconn 单一IP的最大连接数
time语法
时间段:[星期][时间段]
星期可以用:M T W H F A S 时间可以表示为:10:00-12:00
grep -v "^#" filename 过滤文件注释行
grep -v "^$" filename 除去空白行
418行:设置acl
alc alcname src ip-address/netmask
-i 忽略大小写 \.mp3转意
573行左右:设置alc
616-638行:http_access deny + alcname
1575行左右:缓存设置
1782行左右:磁盘的cache
默认建立的一二级目录在/var/spool/squid 100 16 256
初始化代理 squid -z tree树形结构查看
正向代理 透明代理 反向代理
服务器192.168.1.1 代理192.168.1.2 客户端192.168.1.3
正向代理 http ftp
vim /etc/squid/squid/conf
http_port 8080
400+ acl vipclient src 192.168.1.3/255.255.255.0
600+ http_access allow vipclient
允许vipclient 使用代理
客户端最后在浏览器中设置代理服务器IP+端口号
透明代理 gateway 配合iptables
http_port 3128 transparent
启动服务
iptables -A PREROUTING -s 192.168.1.3/255.255.255.0 -p tcp --dport 80 -J REDIRECT --to 3128
PREROUTING基于目的地转发 在路由判断前 DNAT
POSTOUTING基于源地址转发 在路由判断后 SNAT
客户端添加代理网关
route add default gw 192.168.1.2 网关指向代理服务器
反向代理 web
http_port 80 vhost 虚拟主机
cache_peer 192.168.1.1 主机服务端
cache_peer parent 80 0 originserver
ipc协议
0代表一台代理服务器不转发 如果多台代理改为另外一台代理端口进行转发
客户端在/etc/hosts 进行测试 192.168.1.2 www.example.com
如果是多台代理服务器
cache_peer parent 80 0 originserver name=web1
cache_peer parent 80 0 originserver name=web2
cache_peer parent 80 0 originserver name=web3
cache_peer_domain web1 www.exampel.com
cache_peer_domain web2 www.exampel1.com
cache_peer_domain web3 www.exampel2.com
正向和透明代理多应用于内网 反向代理则更多用在外网