[文章作者:张宴 本文版本: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与存储 | 评论(8713) | 引用(0) | 阅读(840323)
jonecena Email
2022-12-23 18:03
Coinbase Sign in available in over 30 countries worldwide people on.Coinbase Wallet login is your key to what's next in crypto web3 dapp browser that.
MaryDelgado Email Homepage
2022-12-23 19:02
You truly did more than visitors’ expectations. Thank you for rendering these helpful, trusted, edifying and also cool thoughts on the topic to Kate.
Nexus Mod Manager Crack Email Homepage
2022-12-24 19:13
Amazing Blog! I realy Like Your Content You Write Such a Amazing Articles. Keep up the great Work. I am a blogger. Thanks For Visit My Website.
IPVanish VPN Email Homepage
2022-12-24 22:47
<a href="https://mycrackstore.com/ipvanish-vpn-crack/">IPVanish VPN Crack</a>IPVanish Crack is a VPN software. It provides access to the private network in an instant. And it gives worldwide locations of servers
Hard Disk Sentinel Pro Crack Email Homepage
2022-12-25 14:03
Hard Disk Sentinel Pro Crack (H.D. Sentinel) is hard disk monitoring software that supports HDD/SSD devices. Its purpose is to find, diagnose, diagnose and fix hard drive problems, report, and display S.S.D. and HDD status, faults, and errors. (H.D. Sentinel) is hard disk monitoring software that supports HDD/SSD devices. Its purpose is to find, diagnose, diagnose and fix hard drive problems, report, and display S.S.D. and HDD status, faults, and errors.https://topactivationkey.org/hard-disk-sentinel-pro-crack/
espial Email
2022-12-25 22:56
7 Tips to Get Best SEO Agency in Pune Knowing how to select an SEO firm may be the difference between an increase in organic traffic, better ranking, and higher conversions and a reduction in organic search ranking. We've even had clients come to us after a prior SEO service used blackhat practices that caused their website to vanish from Google search results.A solid search engine optimization strategy is a must-have marketing tool for any company. Unfortunately, the search engine industry is tough to penetrate since every company wants to be at the top of the results for their terms. To establish an online presence, a firm must engage in an efficient internet marketing strategy with a company that can create results.Choosing the best SEO agency in Pune may be a difficult undertaking, especially with so many new SEO companies popping up. Here are some things to look for and think about when selecting an SEO company.1.Examine an Agency's PortfolioExamine their work, beginning with their website. Has this company's website been effectively optimised for search engines? Do they appear in search terms for their keywords? If they haven't been able to assist themselves in developing a strong internet presence, chances are they won't be able to assist you either. Check out some of the additional businesses they've pushed and their Google rankings.2. Select an Ethical CompanyBefore exploring SEO providers, any business owner should become acquainted with the fundamentals of SEO. Knowing how everything works, what it is, and how realistically achievable outcomes are vital when distinguishing between legitimate and shady SEO techniques.Before establishing a contract with an SEO business, ensure they follow search engine criteria. Black Hat SEO, which refers to unethical optimization tactics, might generate rapid traffic but will eventually prevent you from having any online presence. Is the job done in-house by the agency, or is it outsourced to third parties in another country?3.No one can guarantee outcomes.Pay close attention to what an agency guarantees, which is similar to ethics. If a firm claims to "guarantee" a specific position on Google or a certain quantity of visitors to your website, be wary. Nobody can guarantee a certain rank because Google refuses to pay for priority submissions or higher positions, so the promise you want is that they will follow the search engine standards for quality of work and the search engine optimization procedure.The search algorithm at Google is continuously being modified and adjusted. It's critical to select an agency that remains on top of these updates and is up to current on the newest developments.4.Examine SEO Company ReviewsExamine the testimonies and reviews for the SEO expert in pune you are considering working with. Other remarks can be found online in addition to the testimonials on their website. You are more likely to locate them if they have a large number of unfavourable reviews. Examine their BBB profile and social networking sites to see how they interact online and get a sense of their work culture.5.Expect TransparencyA firm that is eager to answer all of your inquiries and completely clear any concerns by providing SEO facts is a positive indicator. Be wary of firms that keep their processes, methods, or workers hidden. If they are concealing anything, it is quite possible that they are using black hat SEO and operating under unethical conditions. SEO isn't rocket science, nor is there a magic formula. A competent SEO company will share their approach, explain why they do things the way they do, and teach you more about SEO and how it works.6.is no such thing as cheap, quick, and easy.Although internet marketing is the least expensive form of promotion, efficient SEO costs effort and money. Any firm that costs a one-time price is generally not worth it because it is not immediate and cannot be completed overnight. Search engines' algorithms are always evolving, and internet marketing should be a steady, continuing process to attain the greatest results over time. A monthly or annual contract is a better approach to manage SEO to ensure that the SEO business maintains the results and promotes your site consistently.7.They deliver more than a reportBefore you join a firm, inquire about how they disclose outcomes. Google Analytics is fantastic, but it's also critical that they analyse where the site is going and what is working or not working. The finest SEO companies tailor your marketing strategy depending on prior month's success. Make sure they're not only providing you stats, but also evaluating and understanding the data to help your firm grow.https://www.espialsolutions.com/seo-company-in-pune/
WD Motorsports Email Homepage
2022-12-26 17:30
WD Motorsports got a new and extensive range of Motorcycle Gear to fuel your adventures.
zackeaton Email
2022-12-27 02:22
I meant to buy persuasive essay which is much better rather writing it on my own. I don't have free time to cope with all writing.  How do you deal with all papers?
panachemiddleeast1 Email Homepage
2022-12-27 16:02
Nice post.Panache Middle East is one name on the market you can rely on if you need help with an event planning companies in Dubai.
contestshub Email Homepage
2022-12-27 17:13
tellmillers com Ale House Customer Satisfaction Survey is giving to chance to Win Validation Code to enter the tellmillers.
zackeaton Email
2022-12-27 19:12
I write my article review for me for several hours or sometimes a whole day because I always watch a movie I write about. Sometimes it may be too boring but there is no other great alternative, maybe you know some?
garden planner crack Email
2022-12-28 04:49
<a href="https://allpcprocrack.co/garden-planner-crack/">garden planner crack</a>I appreciae your work so keep work continue the arxticle ae good here and more helpful so i appreciate your work so keep continue.
garden planner crack Email Homepage
2022-12-28 04:49
<a href="https://allpcprocrack.co/garden-planner-crack/">garden planner crack</a>I appreciae your work so keep work continue the arxticle ae good here and more helpful so i appreciate your work so keep continue.
ivermectin Email Homepage
2022-12-28 15:26
ivermectin4saleuk is an anti-parasitic medication which has been in use for over 30 years. It works by killing certain parasites and by blocking the nerve signal from reaching the muscles of the parasites.
分页: 359/436 第一页 上页 354 355 356 357 358 359 360 361 362 363 下页 最后页
发表评论
表情
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
打开HTML
打开UBB
打开表情
隐藏
记住我
昵称   密码   游客无需密码
网址   电邮   [注册]