Windows下Squid网站加速使用手记
Windows下Squid网站加速使用手记(2006-11-16 23:39:43)
案例:
我们有一个网站,网站名称暂且为dummy.example.com。原先站点只建立在电信服务器上,但是随着业务的需要,越来越多的网通用户也需要访问我们的站点,这就需要我们在网通的服务器上也要建立一套电信相同的站点,为网通用户提供服务。对于用户而言,不管是电信用户还是网通用户,只需要使用同一个域名:dummy.example.com就能取得满意的访问速度。
首先要解决域名的就近性判断,或者说智能dns的问题,目前比较常用的办法有两种,一是将域名解析的工作交给像网宿等提供cdn解决方案的服务提供商来完成dns解析的工作,当然互联网上也有免费的提供智能dns解析服务的,比如
http://www.dnspod.com/也提供免费的网通电信智能DNS,当然免费的同时风险也是要承担的;二是当公司规模发展到一定的程度后,可以考虑自己购买硬件设备,更有甚者,像新浪等都建有自己的cdn网络。
本文主要是介绍squid缓存服务器的运用,就一笔带过dns解析这部分。
接着说一下建网通站点碰到的问题:
1、因为该网站属于一个类似新闻发布的站点,大部分页面在后台发布的时候是通过生成静态页的方式发布的。也就是每天随着网站的更新,不时将会生成一部分静态页。
2、网站内的图片是通过后台上传的方式上传的,每天不定期的更新。
3、后台一次发布,电信和网通站点同步更新。
电信站点已经建立并且正常运行,每天都将不定期的生成静态页面和上传图片等,如果我们在网通站点上搭建和电信相同的WEB站点,势必导致两个站点之间内容的不同步,如果采用文件同步等等方式来执行,一来同步期间网通站点访问存在问题,二来同步工作在网通线路和电信线路之间频繁进行,非常麻烦。
故所以我们考虑在网通节点上搭建一台用于网站加速的Cache服务器,将源指向电信服务器,而不是建立一个WEB站点的方式来进行。采用这种方式的话,第一次访问一个页面相对较慢,而且如果动态页面很多的情况下也不宜采用。
Cache Server采用的软件是Squid,Squid比较理想的运行环境是类Unix的操作系统下,由于网通站点没有Linux服务器,故只能使用Windows下的squid软件,版本为squid-2.6.STABLE3。
以下为Windows下Squid的配置过程:
1、到
http://www.acmeconsulting.it/SquidNT.htm网站获取最新版本的squid for windows NT
2、unzip to c:\squid
3、在c:\squid\etc目录下,
Copy and rename the follwing files:
squid.conf.default ==> squid.conf
mime.conf.default ==> mime.conf
cachemgr.conf.default ==> cachemgr.conf
4、建立d:\squid\var目录,在var目录下建立logs和cache目录,其中logs目录用于存放日志,cache目录用于存放硬盘缓存数据
5、建立系统账户squid,属于普通用户组,将来用于运行squid服务。将d:\squid目录给予squid读写权限。
6、将squid安装为服务,命令格式:squid -i [-f configfile] [-n servicename],如c:\squid\sbin\squid -i -n Squid_Proxy,将使用默认的配置文件c:\squid\etc\squid.conf,服务名称为Squid_Proxy。删除服务:squid -r [-n servicename]
7、修改配置文件squid.conf
# 监听80端口,并配置为加速模式
http_port 80 vhost
# cache服务器之间通信的端口UDP
icp_port 3130
# cache服务器的名称
visible_hostname cache.example.com
# cache目录和大小的设置,1GB硬盘空间和256M内存
cache_dir ufs d:/squid/var/cache 1024 16 256
cache_mem 256 MB
# 设置上级根服务器的地址,也就是电信源服务器地址
# 当然cache_peer还可以设置兄弟节点、上级cache服务器等等,这里这设置了源服务器地址
cache_peer 电信服务器IP parent 80 0 no-query originserver
# 主机文件路径
hosts_file c:/windows/system32/drivers/etc/hosts
# 设置日志目录和日志格式
access_log d:/squid/var/logs/access.log squid
cache_log d:/squid/var/logs/cache.log
cache_store_log d:/squid/var/logs/store.log
emulate_httpd_log on
# 允许所有用户访问
http_access allow all
# 缓存管理员
cache_mgr webmaster@example.com
8、初始化cache目录
c:\squid\sbin\squid -z
如果配置文件出错的话,初始化cache目录将会出错。
9、启动Squid_Proxy服务
运行services.msc打开服务窗口,选择Squid_Proxy服务,将启动账号设置为开始建立的squid.
net start squid_proxy
10、检查Cache服务器运行是否正常
找一台终端,修改终端的hosts文件,将dummy.example.com指向cache服务器的ip地址,检查网站是否正常访问。
11、其他squid命令
squid -k reconfigure //启用新的配置文件
squid -k rotate //截断日志
squid -k shutdown //stop squid
以前使用squid都是在linux环境下使用,刚使用windows下的squid,还是存在一些问题,其中的一个问题为:
主机头文件的使用方法存在疑问,如果在cache服务器上hosts文件中加入了:
电信服务器IP dummy.example.com
再将squid.conf中cache_peer的配置修改为:
cache_peer dummy.example.com parent 80 0 no-query originserver
重启Squid服务后,发现访问所有通过Cache服务器加速的页面都出现Access Denied。
有用的链接:
-----------------------------------------------------------------------------------------------------------------------------------------------
Cache Server采用的软件是Squid,Squid比较理想的运行环境是类Unix的操作系统下,由于网通站点没有Linux服务器,故只能使用Windows下的squid软件,版本为squid-2.6.STABLE3。以下为Windows下Squid的配置过程:
1、到http://www.acmeconsulting.it/SquidNT.htm网站获取最新版本的squid for windows NT
2、unzip to c:\squid
3、在c:\squid\etc目录下, Copy and rename the follwing files: squid.conf.default ==> squid.conf mime.conf.default ==> mime.conf cachemgr.conf.default ==> cachemgr.conf
4、建立d:\squid\var目录,在var目录下建立logs和cache目录,其中logs目录用于存放日志,cache目录用于存放硬盘缓存数据
5、建立系统账户squid,属于普通用户组,将来用于运行squid服务。将d:\squid目录给予squid读写权限。
6、将squid安装为服务,命令格式:squid -i [-f configfile] [-n servicename],如c:\squid\sbin\squid -i -n Squid_Proxy,将使用默认的配置文件c:\squid\etc\squid.conf,服务名称为Squid_Proxy。删除服务:squid -r [-n servicename]
7、修改配置文件squid.conf # 监听80端口,并配置为加速模式 http_port 80 vhost # cache服务器之间通信的端口UDP icp_port 3130 # cache服务器的名称 visible_hostname cache.example.com # cache目录和大小的设置,1GB硬盘空间和256M内存 cache_dir ufs d:/squid/var/cache 1024 16 256 cache_mem 256 MB # 设置上级根服务器的地址,也就是电信源服务器地址 # 当然cache_peer还可以设置兄弟节点、上级cache服务器等等,这里这设置了源服务器地址 cache_peer 电信服务器IP parent 80 0 no-query originserver # 主机文件路径 hosts_file c:/windows/system32/drivers/etc/hosts # 设置日志目录和日志格式 access_log d:/squid/var/logs/access.log squid cache_log d:/squid/var/logs/cache.log cache_store_log d:/squid/var/logs/store.log emulate_httpd_log on # 允许所有用户访问 http_access allow all # 缓存管理员 cache_mgr webmaster@example.com
8、初始化cache目录 c:\squid\sbin\squid -z 如果配置文件出错的话,初始化cache目录将会出错。
9、启动Squid_Proxy服务 运行services.msc打开服务窗口,选择Squid_Proxy服务,将启动账号设置为开始建立的squid. net start squid_proxy
10、检查Cache服务器运行是否正常 找一台终端,修改终端的hosts文件,将dummy.example.com指向cache服务器的ip地址,检查网站是否正常访问。
11、其他squid命令 squid -k reconfigure //启用新的配置文件 squid -k rotate //截断日志 squid -k shutdown //stop squid 以前使用squid都是在linux环境下使用,刚使用windows下的squid,还是存在一些问题,其中的一个问题为:主机头文件的使用方法存在疑问,如果在cache服务器上hosts文件中加入了:电信服务器IP dummy.example.com再将squid.conf中cache_peer的配置修改为:cache_peer dummy.example.com parent 80 0 no-query originserver重启Squid服务后,发现访问所有通过Cache服务器加速的页面都出现Access Denied。
有用的链接: http://www.squid-cache.org http://www.acmeconsulting.it/SquidNT.htm http://fanqiang.chinaunix.net/adm/other/2006-05-18/4196.shtml
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/houmei015/archive/2008/05/29/2492692.aspx