[文章作者:张宴 本文版本:v1.2 最后修改:2008.01.02 转载请注明出处:http://blog.zyan.cc]

  我曾经写过一篇文章──《初步试用Squid的替代产品──Varnish Cache网站加速器》,但当时仅仅是用着玩,没做深入研究。

  今天写的这篇关于Varnish的文章,已经是一篇可以完全替代Squid做网站缓存加速器的详细解决方案了。网上关于Varnish的资料很少,中文资料更是微乎其微,希望本文能够吸引更多的人研究、使用Varnish。

  在我看来,使用Varnish代替Squid的理由有三点:
  1、Varnish采用了“Visual Page Cache”技术,在内存的利用上,Varnish比Squid具有优势,它避免了Squid频繁在内存、磁盘中交换文件,性能要比Squid高。
  2、Varnish的稳定性还不错,我管理的一台图片服务器运行Varnish已经有一个月,没有发生过故障,而进行相同工作的Squid服务器就倒过几次。
  3、通过Varnish管理端口,可以使用正则表达式快速、批量地清除部分缓存,这一点是Squid不能具备的。

  点击在新窗口中浏览此图片


  下面来安装Varnish网站缓存加速器(Linux系统):
  1、创建www用户和组,以及Varnish缓存文件存放目录(/var/vcache):
/usr/sbin/groupadd www -g 48
/usr/sbin/useradd -u 48 -g www www
mkdir -p /var/vcache
chmod +w /var/vcache
chown -R www:www /var/vcache


  2、创建Varnish日志目录(/var/logs/):
mkdir -p /var/logs
chmod +w /var/logs
chown -R www:www /var/logs


  3、编译安装varnish:
wget http://blog.zyan.cc/soft/linux/varnish/varnish-1.1.2.tar.gz
tar zxvf varnish-1.1.2.tar.gz
cd varnish-1.1.2
./configure --prefix=/usr/local/varnish
make && make install


  4、创建Varnish配置文件:
vi /usr/local/varnish/vcl.conf

  输入以下内容:
引用
backend myblogserver {
       set backend.host = "192.168.0.5";
       set backend.port = "80";
}

acl purge {
       "localhost";
       "127.0.0.1";
       "192.168.1.0"/24;
}

sub vcl_recv {
       if (req.request == "PURGE") {
               if (!client.ip ~ purge) {
                       error 405 "Not allowed.";
               }
               lookup;
       }

       if (req.http.host ~ "^blog.zyan.cc") {
               set req.backend = myblogserver;
               if (req.request != "GET" && req.request != "HEAD") {
                       pipe;
               }
               else {
                       lookup;
               }
       }
       else {
               error 404 "Zhang Yan Cache Server";
               lookup;
       }
}

sub vcl_hit {
       if (req.request == "PURGE") {
               set obj.ttl = 0s;
               error 200 "Purged.";
       }
}

sub vcl_miss {
       if (req.request == "PURGE") {
               error 404 "Not in cache.";
       }
}

sub vcl_fetch {
       if (req.request == "GET" && req.url ~ "\.(txt|js)$") {
               set obj.ttl = 3600s;
       }
       else {
               set obj.ttl = 30d;
       }
}

  这里,我对这段配置文件解释一下:
  (1)、Varnish通过反向代理请求后端IP为192.168.0.5,端口为80的web服务器;
  (2)、Varnish允许localhost、127.0.0.1、192.168.0.***三个来源IP通过PURGE方法清除缓存;
  (3)、Varnish对域名为blog.zyan.cc的请求进行处理,非blog.zyan.cc域名的请求则返回“Zhang Yan Cache Server”;
  (4)、Varnish对HTTP协议中的GET、HEAD请求进行缓存,对POST请求透过,让其直接访问后端Web服务器。之所以这样配置,是因为POST请求一般是发送数据给服务器的,需要服务器接收、处理,所以不缓存;
  (5)、Varnish对以.txt和.js结尾的URL缓存时间设置1小时,对其他的URL缓存时间设置为30天。

  5、启动Varnish
ulimit -SHn 51200
/usr/local/varnish/sbin/varnishd -n /var/vcache -f /usr/local/varnish/vcl.conf -a 0.0.0.0:80 -s file,/var/vcache/varnish_cache.data,1G -g www -u www -w 30000,51200,10 -T 127.0.0.1:3500 -p client_http11=on


  6、启动varnishncsa用来将Varnish访问日志写入日志文件:
/usr/local/varnish/bin/varnishncsa -n /var/vcache -w /var/logs/varnish.log &


  7、配置开机自动启动Varnish
vi /etc/rc.local

  在末尾增加以下内容:
引用
ulimit -SHn 51200
/usr/local/varnish/sbin/varnishd -n /var/vcache -f /usr/local/varnish/vcl.conf -a 0.0.0.0:80 -s file,/var/vcache/varnish_cache.data,1G -g www -u www -w 30000,51200,10 -T 127.0.0.1:3500 -p client_http11=on
/usr/local/varnish/bin/varnishncsa -n /var/vcache -w /var/logs/youvideo.log &


  8、优化Linux内核参数
vi /etc/sysctl.conf

  在末尾增加以下内容:
引用
net.ipv4.tcp_fin_timeout = 30
net.ipv4.tcp_keepalive_time = 300
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.ip_local_port_range = 5000    65000



  再看看如何管理Varnish:
  1、查看Varnish服务器连接数与命中率:
/usr/local/varnish/bin/varnishstat

  点击在新窗口中浏览此图片

  2、通过Varnish管理端口进行管理:
  用help看看可以使用哪些Varnish命令:
/usr/local/varnish/bin/varnishadm -T 127.0.0.1:3500 help

引用
Available commands:
ping [timestamp]
status
start
stop
stats
vcl.load
vcl.inline
vcl.use
vcl.discard
vcl.list
vcl.show
param.show [-l] []
param.set
help [command]
url.purge
dump.pool


  3、通过Varnish管理端口,使用正则表达式批量清除缓存:
  (1)、例:清除类似http://blog.zyan.cc/a/zhangyan.html的URL地址):
/usr/local/varnish/bin/varnishadm -T 127.0.0.1:3500 url.purge /a/

  (2)、例:清除类似http://blog.zyan.cc/tech的URL地址:
/usr/local/varnish/bin/varnishadm -T 127.0.0.1:3500 url.purge w*$

  (3)、例:清除所有缓存:
/usr/local/varnish/bin/varnishadm -T 127.0.0.1:3500 url.purge *$


  4、一个清除Squid缓存的PHP函数(清除Varnish缓存同样可以使用该函数,无需作任何修改,十分方便):


  附1:Varnish官方网站:http://www.varnish-cache.org/

  附2:2007年12月10日,我写了一个每天0点运行,按天切割Varnish日志,生成一个压缩文件,同时删除上个月旧日志的脚本(/var/logs/cutlog.sh):
  /var/logs/cutlog.sh文件内容如下:
引用
#!/bin/sh
# This file run at 00:00
date=$(date -d "yesterday" +"%Y-%m-%d")
pkill -9 varnishncsa
mv /var/logs/youvideo.log /var/logs/${date}.log
/usr/local/varnish/bin/varnishncsa -n /var/vcache -w /var/logs/youvideo.log &
mkdir -p /var/logs/youvideo/
gzip -c /var/logs/${date}.log > /var/logs/youvideo/${date}.log.gz
rm -f /var/logs/${date}.log
rm -f /var/logs/youvideo/$(date -d "-1 month" +"%Y-%m*").log.gz

  设置在每天00:00定时执行:
  
/usr/bin/crontab -e
  或者  
vi /var/spool/cron/root
  输入以下内容:
引用
0 0 * * * /bin/sh /var/logs/cutlog.sh



Tags: , , ,



技术大类 » Cache与存储 | 评论(8743) | 引用(0) | 阅读(863264)
Marketing Help Email Homepage
2020-3-3 17:50
Marketing assignments are an essential part of a marketing management degree. There plenty of marketing management assignment help services available online. But writing assignments on marketing related topics isn’t a turkey shoot. It requires the capability of detailed research, knowledge in the specific are and writing skills. But there’s nothing to be tensed about, we at my assignmenthelp.net provide marketing management homework help by proficient marketing assignment writers to finish your intricate projects.Marketing Management homework help
Management Help Email Homepage
2020-3-3 18:12
Management Assignment HelpAre you a management student who has to complete multiple assignments weekly and don’t have time to complete every assignment perfectly? Then take management assignment help from our qualified and experienced experts. So, if you want to outsource your work to anyone who can deliver quality and plagiarism free management assignment help at affordable prices, then you need to drop us an email and ask right now! Management Assignment Help
Antivirus Helpline Email Homepage
2020-3-3 18:25
I keep reading good content about Mcafee customer service telephone Number +1 855-484-3404. And this blog attracted my attention very quickly. Seeking Mcafee customer service telephone number from right source plays a crucial role. This is what this piece of blog is all about. They have provided all necessary details about Mcafee and related support needs. It Is a Good read!https://www.antivirushelpline.site/mcafee-antivirus.php
Accounting Help Email Homepage
2020-3-3 19:09
Series of benefits can be gained from using the service of an accounting assignment help service starting from you getting a fast delivery time and more, which includes:1.  Fast delivery timeThe assignment delivery is essential being the reason why students use the service of accounting assignment help to keep the on-time delivery. As a student maintaining the assignment delivery time will help you obtain a certain percentage of score based on the assignment marking result. Choosing the service of an accounting assignment agency will give you flexible time, especially if you are a part-time studentAccounting Assignment Help
Finance Help Email Homepage
2020-3-3 19:10
It is a course that helps improve students' knowledge that always come in handy during investment. You as a student, writing essay and other related financial assignments is quite hectic, but it is one of the fastest ways to sharpen your skills in finance. Due to this, when things got out of hand based on the complexity of each assignment, students often seek the help of finance assignment help Australia.
Tapos Email Homepage
2020-3-3 20:28
Hello my dear admin. How are you? I think you are well. You are write a article which I am reading very carefully. This is amazing article. I am looking for this type article. I also share your post with my friends. By the way I look forward to such a post from you in the future. I am a request for you. SSC Result 2020 is available here. It is good news for SSC candidates. After complete SSC examination candidates are eager waiting for routine. Finally, Education Board, Bangladesh has published <a title="SSC Result 2020" href="https://bdjobresults.com/ssc-result">SSC Result 2020</a>
on their official website. After that we upload Secondary School Certificate (SSC) on our website. In this article we discuss SSC Result. Such as how to check result? how to get SSC result with marksheet? how to apply board challenge? All question answer are given below. For more details visit <a title="BdJobResults" href="https://bdjobresults.com">BdJobResults</a>
Zayn Email
2020-3-4 04:56
Mcafee - Antivirus software by McAfee focuses on protecting your system from threats, both offline and online. Produced by the American multinational organization, the antivirus can prevent several types of malware, threats, and viruses. Visit on mcafee.com/activate   |  www.mcafee.com/activate  |   mcafee.com/activate
Ellu Email Homepage
2020-3-4 13:48
If you are facing any mail problems associated with Yahoo mail, immediately contact Yahoo Customer support team for the best solution. Our experts can solve all the issues related to Yahoo mail just by dialling the number of technical experts. You can also use Yahoo live chat to continuously chat with our Yahoo technical experts and resolve the issues without any chaos.Yahoo Customer Support
Office.com/setup Email Homepage
2020-3-4 14:08
Very nice post. I simply stumbled upon your blog and needed to say that I have really enjoyed aquatics around your web log posts. on balance I'll be subscribing to your feed which i hope you write another time soon!
gerrycriston
2020-3-4 15:01
Very nice post. I simply stumbled upon your blog and needed to say that I have really enjoyed aquatics around your web log posts. on balance I'll be subscribing to your feed which i hope you write another time soon!office.com/setup
Naveed Email
2020-3-4 15:35
This is very educational content and written well for a change. It's nice to see that some people still understand how to write a quality post.! PMP Certification
avaknights Email Homepage
2020-3-4 16:42
Everybody faces a very common issue with their printer. Our Canon Printer Technical Support team delivers a complete solution for your worries through both online and on-site support. They can easily communicate and discuss printer technical issues with the help of chat support services. Our technicians are highly qualified to resolve issues with varying models and you will be able to contact them easily when you find yourself in trouble. You can also call our experts.https://canon-printer-support-numbers.com/
jameshaller Email Homepage
2020-3-4 18:46
This is a great inspiring article. I am pretty much pleased with your good work. You put really very helpful information. Keep it up. Keep blogging. Looking forward to reading your next post. Here we are giving great discounts on Allegiant Airlines Reservations. Click on the link for more details about the Allegiant Airlines Booking offer.Allegiant Airlines Reservations
Trimmers123 Email Homepage
2020-3-5 12:49
List of Trimmer with Specs and best Price in India. Check full specifications, reviews, user ratings, and features of all Trimmer. Compare Prices Of Trimmer From Online and nearby stores before buying online. Compare and Buy Trimmer, Wholesale Trimmer.
Webroot Download Email Homepage
2020-3-5 14:17
Webroot Download - Webroot is a cloud-based antivirus software that defends your system from viruses and malware. It protects you during the web surfing sessions by blocking harmful sites.
Magellan Roadmate Update Email Homepage
2020-3-5 14:18
Magellan Roadmate Update can be paid or free to install the updates, the user must have the content manager application on the computer system
Garmin Connect Login Email Homepage
2020-3-5 14:19
After Garmin connect login to your account you can view, track, analyze and share health and fitness activities from the Garmin device
TurboTax Login Email Homepage
2020-3-5 14:21
TurboTax Login - TurboTax offers reliable and hasslefree solutions for computing and filing taxes for American taxpayers. In other words, it is a leading tax preparation software package that simplifies the lengthy and complicated procedures
Office.com/setup Email Homepage
2020-3-5 14:21
Office.com/setup is a well coordinated collection of purpose-built applications. It is meant for cost effective, convenient and enhanced productivity. It assists you in doing almost everything from instant messaging to your colleagues and teams to creating complex websites in SharePoint.
AOL Mail Email Homepage
2020-3-5 14:22
Using the AOL Mail, you might get several errors displaying on your screen. These errors are the result of the occurrence of unexpected conditions. For the smooth functioning of the AOL Mail, it becomes important to resolve the errors quickly.
分页: 132/438 第一页 上页 127 128 129 130 131 132 133 134 135 136 下页 最后页
发表评论
表情
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
打开HTML
打开UBB
打开表情
隐藏
记住我
昵称   密码   游客无需密码
网址   电邮   [注册]