3、基于squid for windows下的反向代理
为了佐证本方案是经过实践考验的,并且是通用的行业方案,以下是我通过抓包得到的一些大规模网站实际应用:
--网易
Servernginx
DateWed, 10 Mar 2010 02:25:39 GMT
Content-Typetext/html; charset=GBK
Last-ModifiedWed, 10 Mar 2010 02:24:45 GMT
VaryAccept-Encoding
ExpiresWed, 10 Mar 2010 02:27:39 GMT
Cache-Controlmax-age=120
Content-Encodinggzip
Age49
X-CacheHIT from cache.163.com
Via192.168.51.39.nginx, 1.0 cache.163.com (squid/3.0.STABLE23)
Connectionclose
--腾讯
Servernginx/0.6.39
DateWed, 10 Mar 2010 02:26:48 GMT
Content-Typetext/html; charset=GB2312
VaryAccept-Encoding, Accept-Encoding
ExpiresWed, 10 Mar 2010 02:41:48 GMT
Cache-Controlmax-age=900
Content-Encodinggzip
Age313
X-CacheHIT from rainny.qq.com
Via1.0 rainny.qq.com:80 (squid/2.6.STABLE5)
Connectionclose
----搜狐
DateWed, 10 Mar 2010 02:41:40 GMT
ServerApache/1.3.39 (Unix) mod_gzip/1.3.26.1a
VaryAccept-Encoding,X-Up-Calling-Line-id,X-Source-ID,X-Up-Bearer-Type
Cache-Controlmax-age=70
ExpiresWed, 10 Mar 2010 02:42:50 GMT
Last-ModifiedWed, 10 Mar 2010 02:41:39 GMT
Content-Typetext/html
Age9
X-CacheHIT from 17376722.22226606.29245568.sohu.com
Via1.0 17376722.22226606.29245568.sohu.com:80 (squid)
Connectionclose
4、其它
二、SQUID简介
SQUID 简单说来是基于UNIX下开发的为WEB应用加速的一个开源软件。SQUID已经普遍在基于nix系统下的WEB应用中使用,例如:新浪、网易都使用该软件,其中SQUID FOR WINDOWS是在WINDOWS下使用。SQUID通过哈希算法在磁盘上建立目录,将第一次请求的信息,存在指定的目录下,供其下次存取,此外SQUID也会将请求的页面信息缓存在内存中,当客户端访问某一页面时,如果内存中存在,则直接命中CACHE;如果内存中不存在,则到CACHE目录下获取,否则到后端的WEB SERVER获取。
SQUID 特点:
1、SQUID沿继了nix下配置的风格,可能用惯了WINDOWS的用户初次使用会有些不适。
2、SQUID包括了一系列的配置策略,认证、访问控制、缓存设置、URL抓取、日志管理、磁盘管理、群集等。
3、SQUID可以通过refresh_pattern策略设置请求的URL可缓存的内容,失效时间(详见文档)。 4、缓存策略说明
SQUID使用了LM算法,LM就是页面Header里时间(Date)和Last-Modified时间的差。Date一般是Squid从后面取页面的时间,Last-Modified 一般是页面生成时间。
refresh_pattern 的语法是
refresh_pattern [-i] regexp min percent max [options]
在使用SQUID之前,首先要规划或确定你现有布署环境,如果你是Single Web Server 建议你在Web Server前增加一台机器做为SQUID服务器
三、SQUID FOR WINDOWS配置
本文中SQUID放在172.20.65.201的机器上,应用WEB SERVER IP为172.20.65.203,其中SQUID在201上的80端口侦听,测试客户端机器为172.20.65.231,在squid.conf中#代表注释,所以开启某项设置,需去掉前面的#。TAG标签代表每一功能项的设置。
1、下载
下载SQUID FOR WINDOWS(我所用的版本是Squid 2.7.STABLE6,各个版本的配置可能略有不同,大家请注意)