作者:kittow 日期:2006-06-01
(本文遵守“创作共用”协议,转载请注明作者和原文地址)http://skyhe.com/blog/bloget/home/review.asp?id=600---------------------------------------------------------
Squid的介绍:
一款超强、开源的Proxy软件,除了做普通的代理服务器外,还可以做反向代理的WEB加速。如果你知道国内他的使用者有sina、sohu、netease...
忙活了两天,总算把Squid的反向代理服务器设置好了,总结一下,方便后来者
本文主要讨论的是squid反向代理模式用做web加速服务器的设置
按照本文的说明,你最终可以实现一个squid对多个网站进行缓存加速的功能(这些网站可以在squid本机上www.skyhe.com,也可以在其它服务器上bbs/photo.skyhe.com)
首先你需要下载一份最新的Squid软件,并根据参考文章安装配置
Squid - NT版本下载:
http://www.acmeconsulting.it/pagine/opensource/squid/SquidNT.htmSquid的正向代理服务设置相当简单,相信你很快就能获得成就感:)
其次为了测试域名转向,你最好在自己的内网服务器上面安装一个DNS Server
(DNS Server的安装设置问题请参考相关书籍或文章),并设置好区域(正向查找、反向查找)、主机(A纪录)
www.skyhe.com 192.168.10.252 bbs.skyhe.com 192.168.10.56 photo.skyhe.com 192.168.10.119 |
以上252是主网站的服务器IP(和Squid同一台机器),56、119分别是其它两个网站的内部IP。
同时,你需要在本地的host文件加入内部的DNS解析,比如:
192.168.10.252 www.skyhe.com 192.168.10.252 bbs.skyhe.com 192.168.10.252 photo.skyhe.com |
192.168.10.252是你的squid服务器地址,本文测试环境下,整个反向代理访问的流程是:
用户请求bbs.skyhe.com - 本机host解析为192.168.10.252 - squid服务器
- DNS服务器(解析到192.168.1.56) - web服务器(如果没有缓存该页) - squid服务器 - 用户
然后根据参考文章配置反向代理服务器,在配置的过程中要注意以下几点
1、服务器port设置
本机转别机和本机转本机(squid和web server在一台机器上)的设置不同
前者squid和web可以都用80端口,后者squid用80,web服务器得换端口
2、dst和dstdomain的区别
前者是对ip定义别名,后者是对domain定义别名
如果采用ip定义别名,httpd_accel_host不能采用“virtual”模式
3、httpd_accel_with_proxy
采用加速器模式,默认是关掉代理服务的,如果打开,将无法使用高速缓存加入web服务(加速器下,squid会将web内容放入内存,响应速度肯定比硬盘文件缓存快)
我的配置文件如下:
# visible name visible_hostname cache.example.com # cache config: space use 1G and memory use 256M cache_dir ufs /usr/local/squid/cache 1024 16 256 cache_mem 256 MB cache_effective_user squid cache_effective_group squid # 以上主机名和缓存设置比较简单,略过 # 关键 1 http_port 80 # squid监听的端口,必须为80 # ------(你不想用户用www.skyhe.com:8001访问你的网站吧?;) # 关键 2 httpd_accel_host virtual #加速器的主机名称或者IP地址。 # *如果是对多个域名加速,请填写"virtual"(虚拟主机模式) httpd_accel_port 8000 #加速器的工作端口,和web服务器一致 httpd_accel_single_host off httpd_accel_uses_host_header on httpd_accel_with_proxy off #是否同时运行代理服务 # 关键 3 - TAG: acl节点的设置 # 设定可以访问的域名别名 acl HostA dstdomain www.skyhe.com acl HostB dstdomain bbs.skyhe.com acl HostC dstdomain photo.skyhe.com # 加速器采用http协议在8000端口监听 acl acceleratedProtocol protocol HTTP acl acceleratedPort port 8000 # 关键 4 - 允许指定的域名在指定端口的访问 http_access allow acceleratedProtocol acceleratedPort HostA http_access allow acceleratedProtocol acceleratedPort HostB http_access allow acceleratedProtocol acceleratedPort HostC
# 日志设定 emulate_httpd_log on cache_store_log none # 管理员相关设定 acl manager proto cache_object http_access allow manager all cachemgr_passwd pass all # 最后不要忘了 http_access deny all
|
补充在调试的过程中你可能会不停的遇到缓存的问题,导致你不能正确的看到配置修改后的效果,所以:
1、DNS服务器段缓存的清除办法:
DNS配置 - DNS服务器上右键 - 清除缓存
2、DNS客户端缓存的清除办法:
CMD - “ ipconfig /flushdns ”
3、Squid缓存的清除办法
目前没有找到到合适的,maybe:重启squid?CMD输入“ squid -z ”?
4、IE的缓存
Internet选项 - 清除临时文件 - 清除历史纪录
5、查看DNS服务器信息的CMD命令:nslookup
例如:nslookup www.sina.com.cn
如果DNS服务器允许了区域复制,还可以在nslookup下用“ls -t abd.com”查看区域adc.com的所有主机列表
参考文章:Windows下Squid代理服务器的配置
http://www.idcwest.cn/html/2005-09/161.html
基于反向代理的Web缓存加速——可缓存的CMS系统设计
http://www.xpcool.com/html/2005-09/159.html
《Squid 中文权威指南》译者:彭勇华(1~9)
http://bbs.chinaunix.net/viewthread.php?tid=585063&extra=page%3D1&page=1
[转载]使用反向代理技术保护Web服务器
http://www.ddvip.net/safe/hack/index1/354.htm
060627补充:
[color=#0000CD]Squid反向代理N个后台WEB实现说明[小结文档][/color]
http://dev.csdn.net/author/longrujun/34d3040adb824b65b1fad9ef5de89209.html
当前评分 2.5 , 共有 35 人参与
- Currently 2.457143/5 Stars.
- 1
- 2
- 3
- 4
- 5