部分转自:http://www.ibm.com/developerworks/cn/linux/l-cn-squid/
Squid 反向代理的实现原理
目前有许多反向代理软件,比较有名的有 Nginx 和 Squid 。 Nginx 是由 Igor Sysoev 为俄罗斯访问量第二的 Rambler.ru 站点开发的,是一个高性能的 HTTP 和反向代理服务器,也是一个 IMAP/POP3/SMTP 代理服务器。
Squid
是由美国*大力资助的一项研究计划,其目的为解决网络带宽不足的问题,支持
HTTP
,HTTPS,FTP 等多种协议,是现在 Unix 系统上使用、最多功能也最完整的一套软体。下面将重点介绍 Squid 反向代理的实现原理和在提高网站性能方面的应用。
Squid
反向代理服务器位于本地 WEB 服务器和 Internet 之间 , 组织架构如图 2:
Squid 反向代理一般只缓存可缓冲的数据(比如 html 网页和图片等),而一些 CGI 脚本程序或者 ASP、JSP 之类的动态程序默认不缓存。它根据从 WEB 服务器返回的 HTTP 头标记来缓冲静态页面。有四个最重要 HTTP 头标记:
- Last-Modified: 告诉反向代理页面什么时间被修改
- Expires: 告诉反向代理页面什么时间应该从缓冲区中删除
- Cache-Control: 告诉反向代理页面是否应该被缓冲
- Pragma: 用来包含实现特定的指令,最常用的是 Pragma:no-c
ache
环境介绍
squid服务器一台
ip地址
eth0 192.168.0.100/24
eth1 200.168.0.110/24
webserver 多台
server1:ip 192.168.0.101/24
server2:192.168.0.102/24
pc测试机(接外网)
200.168.0.109/24
修改squid配置文件
修改squid.conf 并重新加载配置文件
http_port 200.168.0.110:80 vhost
acl all src 0.0.0.0/0.0.0.0 # 添加acl规则 允许所有通过
http_access allow all
cache_peer 192.168.0.101 prarent 80 0 originserver weight=5 max-conn=30 #192.168.0.101 表示服务器的ip
cache_peer 192.168.0.102 prarent 80 0 originserver weight=5 max-conn=30