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。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值