饭叔的知识整理

squid的配置

vim /etc/squid/squid.conf

扩大缓存空间为500M

cache_dir ufs /var/spool/squid 500 16 256

把缓存策略改为永不过期(有特殊背景)

refresh_pattern .        1440    50%    10080 override-expire override-lastmod reload-into-ims ignore-reload ignore-no-cache ignore-private

squid里要先给对象起名字,再设置对象的权限

把端口3000,13000,8888,18888赋予名字Safe_ports,是的,一个名字可以指代一组端口。

acl Safe_ports port 3000                # route
acl Safe_ports port 13000               # route
acl Safe_ports port 8888                # map
acl Safe_ports port 18888               # map

拒绝不在名单上的端口(默认)

http_access deny !Safe_ports

给符合某个正则表达式的url起个名字叫map

acl map url_regex ^http://.+:8888/v2/.*

允许符合map形式的url

http_access allow map

打开监听端口8888,并且作为反向代理使用。解释一下defaultsite的作用,在请求中没有host的时候,defaultsite会作为host填入。defaultsite是squid所在机器的域名。猜测可能是用于虚拟主机,一个IP对应多个host的情况。

http_port 8888 accel  defaultsite=www.xunxunmeme.com:8888

设置反向代理真正的源头,这里是zb.dreamvoc.com

cache_peer zb.dreamvoc.com parent 8888 0 no-query originserver name=myAccel

参考

http://linux.vbird.org/linux_server/0420squid.php#server_pkg
http://wiki.squid-cache.org/ConfigExamples/Reverse/BasicAccelerator http://www.squid-cache.org/Doc/config/http_port/
http://www.squid-cache.org/Doc/config/refresh_pattern/
http://www.php-oa.com/2008/01/22/zaisquid26zhongrefrerefresh_patterndeyixielijiehejianyi.html
http://superuser.com/questions/728995/how-to-cache-all-data-with-squid-facebook-videos-downloads-and-exe-qnap