squid2.6加速WEB支持虚拟主机配置心得体会

本人一台web服务器,日流量约10万,上面有好几个虚拟主机,近日装上Squid 2.6进行WEB加速,Squid 和Apache均在同一台服务器上面,效果非常明显,看到论坛上好多人问如何配置squid2.6支持,虚拟主机
现在将安装过程贴出和大家一起分享,给菜鸟们一个学习机会和老鸟们一个批评指正的机会

主机配置为: CPU: AMD64 Sempron 3100  内存: 2GB RAM

下载:wget  http://www.squid-cache.org/Versions/v2/2.6/squid-2.6.STABLE6.tar.bz2

tar jxvf squid-2.6.STABLE6.tar.bz2

安装: ./configure --with-maxfd=65536

这个--with-maxfd参数是增大squid文件描述符到65536

安装完毕后开始配置/usr/local/squid/etc/squid.conf


CODE:
visible_hostname www
. yoursite . com
http_port xx
. xx . xx . xx: 80  vhost vport

# xx . xx . xx . xx为这台服务器的IP地址

icp_port 
0

cache_mem 
400  MB

# 设置Squid所能使用的内存共400MB,这个值因人而异

cache_swap_low 
90
cache_swap_high 
95

maximum_object_size 
20000  KB

# 最大缓存文件大小,超过这个值则不缓存,这个值因人而异

maximum_object_size_in_memory 
4096  KB

# 装入内存缓存的文件大小,这个值对Squid的性能影响比较大,因为默认值是8K , 超过8K的文件都不装入内存,而实际应用中很多网页和图片等都超过 8KB ,  个人认为如果缓存不装入内存而存在磁盘上,性能和apache直接读取磁盘文件没什么区别,甚至不如直接访问apache,现在设置成小于4兆的文件通通装入内存缓存 .

cache_dir ufs 
/ tmp1  10000   16   256

# 磁盘缓存的类型和目录,大小,一二级目录的设置,这里磁盘缓存大小是10G

cache_store_log none

# 这个设置是不记录store . log

emulate_httpd_log 
on

# 打开emulate_httpd_log选项 , 将使Squid仿照Aapche的日志格式

logformat combined %
> a %ui %un [%tl]  " %rm %ru HTTP/%rv "  %Hs % < st  " %{Referer}>h "   " %{User-Agent}>h "  %Ss:%Sh

# 日志格式combined的设置

pid_filename 
/ var / log / squid / squid . pid
cache_log 
/ var / log / squid / cache . log
access_log 
/ var / log / squid / access . log combined

# 这里是设置pid和日志文件的位置,因人而异,同时日志格式是combined,awstats可以直接调用分析了

acl all src 
0.0 . 0.0 / 0.0 . 0.0

acl QUERY urlpath_regex cgi-bin 
. php  . cgi  . avi  . wmv  . rm  . ram  . mpg  . mpeg  . zip  . exe
cache  deny QUERY

# 设置不想缓存的目录或者文件类型


acl picurl url_regex -i 
. bmp $   . png $   . jpg $   . gif $   . jpeg $
acl mystie1 referer_regex -i aaa
http_access allow mystie1 picurl
acl mystie2 referer_regex -i bbb
http_access allow mystie2 picurl

# 设置防图片盗链的,其中aaa , 和bbb分别是虚拟主机的域名,referer中必须包含有aaa或者bbb的域名才能访问图片

acl nullref referer_regex -i ^
$
http_access allow nullref
acl hasref referer_regex -i 
.+
http_access deny hasref picurl

# 设置允许直接访问图片和拒绝referer中没有包含aaa或着bbb的访问图片

cache_peer xx
. xx . xx . xx parent  81   0  no-query originserver login = PASS

# xx . xx . xx . xx还是本机服务器的IP,81则是apache的端口,如果你的虚拟主机有用户名和密码保护起来的目录必须设置login = PASS,否则认证会失效

cache_effective_user nobody
cache_effective_group nobody

# squid使用的用户组和用户名


squid配置完成!

建立缓存和日志目录,并改变权限使squid能写入
mkdir /tmp1
mkdir /var/log/squid
chown -R nobody:nobody /tmp1
chmod 666 /tmp1
chown -R nobody:nobody /var/log/squid
-----------------------
Apache需要改动的配置

Port 81

#要把端口改为81

NameVirtualHost xx.xx.xx.xx:81
#本台主机IP和端口

虚拟主机配置
<VirtualHost xx.xx.xx.xx>
    ServerAdmin xxx@yahoo.com
    DocumentRoot /home/aaa/www
    ServerName aaa.com
    ServerAlias www.aaa.com
    ScriptAlias /cgi-bin/ "/home/aaa/cgi-bin/"
    <Directory />
      Options Includes FollowSymLinks
      AllowOverride All
    </Directory>
</VirtualHost>

如果还有别的虚拟主机请参照上面设置

---------------------------------------------------------

重启apache : apachectl restart

----------------------------------------------------------
首次运行squid要先建立缓存

/usr/local/squid/sbin/squid -z

启动squid

echo "65535" > /proc/sys/fs/file-max
ulimit -HSn 65535
/usr/local/squid/sbin/squid

大家最好把这几句话放到squid启动脚本里面,这样才会获得65536文件描述符

最好还编辑/etc/hosts 文件
添加以下内容

xx.xx.xx.xx aaa.com www.aaa.com bbb.com www.bbb.com

这样免去查询DNS,速度也快一些


现在大家肯定急着要打开浏览器访问你的网站看看效果吧,其实没啥变化,要等到有流量访问,squid把文件都装到内存后,效果才明显。可以用top命令观察squid的内存使用情况或者用

cat /var/log/squid/access.log |grep TCP_MEM_HIT

如果看到很多的 TCP_MEM_HIT ,这表明该文件是从内存缓存读取的,squid已经起作用了!你再用浏览器打开该文件,应该是快如闪电了。。呵呵,大功告成了! 还有其他类型的HIT,如TCP_HIT等等,这些是从磁盘读取的,我觉得加速的意义不大,只不过缓解了apache的压力而已。

后记: 我的服务器因流量很大,大多都是静态的网页,日访问量常常上10W, apache常常不堪负重,苟延残存,任务数常到达300甚至400,后来安装squid2.6接管了大部分的apache,服务器如释重负,不但速度有 提升,而且系统负载也低了很多,任务数稳定在100~120之间,任他流量波涛汹涌,服务器依然屹立不倒。不过squid就是比较吃内存,如果服务器能的 内存加到4GB那就爽多了。 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值