[文章作者:张宴 本文版本: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与存储 | 评论(8653) | 引用(0) | 阅读(807144)
Royjassunn Email
2024-2-23 12:44
The Capital One login serves as a gateway for customers to access their accounts securely from anywhere, at any time. It allows users to manage their finances, view account balances, monitor transactions, pay bills, and more, all through a user-friendly online platform.Capital One Login | Capital One Login
jasan Email
2024-2-23 14:53
The MetaMask extension is a widely used tool for accessing decentralized applications (dApps) and managing Ethereum-based cryptocurrencies directly from your web browser. As a browser extension, MetaMask integrates seamlessly into popular browsers like Chrome, Firefox, and Brave, providing users with a convenient way to interact with the Ethereum blockchain without the need for separate software or applications.
jasan Email
2024-2-23 14:53
The MetaMask extension is a widely used tool for accessing decentralized applications (dApps) and managing Ethereum-based cryptocurrencies directly from your web browser. As a browser extension, MetaMask integrates seamlessly into popular browsers like Chrome, Firefox, and Brave, providing users with a convenient way to interact with the Ethereum blockchain without the need for separate software or applications.
온라인슬롯 Email Homepage
2024-2-26 10:24
<a href="https://ava123nkl.com" target="_blank" rel="noreferrer noopener">온라인카지노</a> <a href="https://ava123nkl.com" target="_blank" rel="noreferrer noopener">카지노사이트</a> <a href="https://ava123nkl.com" target="_blank" rel="noreferrer noopener">온라인슬롯</a> <a href="https://ava123nkl.com" target="_blank" rel="noreferrer noopener">메이저사이트</a> <a href="https://ava123nkl.com" target="_blank" rel="noreferrer noopener">안전카지노</a> <a href="https://ava123nkl.com" target="_blank" rel="noreferrer noopener">바카라사이트</a> <a href="https://ava123nkl.com" target="_blank" rel="noreferrer noopener">슬롯사이트</a> <a href="https://ava123nkl.com" target="_blank" rel="noreferrer noopener">바카라 사이트</a> <a href="https://ava123nkl.com" target="_blank" rel="noreferrer noopener">슬롯 사이트</a> <a href="https://ava123nkl.com" target="_blank" rel="noreferrer noopener">온라인 슬롯</a> <a href="https://ava123nkl.com" target="_blank" rel="noreferrer noopener">카지노 사이트</a> <a href="https://ava123nkl.com" target="_blank" rel="noreferrer noopener">카지노</a> <a href="https://ava123nkl.com" target="_blank" rel="noreferrer noopener">카지노추천</a> <a href="https://ava123nkl.com" target="_blank" rel="noreferrer noopener">온라인슬롯</a> <a href="https://ava123nkl.com" target="_blank" rel="noreferrer noopener">안전공원</a>
shira Email
2024-2-26 11:46
MetaMask Chrome Wallet Extension is a browser extension compatible with popular browsers like Chrome, Firefox, and Brave. It serves as a bridge between traditional web browsers and the Ethereum blockchain, allowing users to interact with Ethereum-based dApps seamlessly.MetaMask Extension serves as a gateway to the decentralized web, enabling users to securely manage their crypto assets and access a diverse ecosystem of dApps. MetaMask empowers users to navigate the complex world of cryptocurrencies with confidence.MetaMask enables users to securely store, send, and receive Ether (ETH). MetaMask Browser Extension emerges as a pivotal tool, seamlessly integrating into your browser to provide a secure wallet and access to a plethora of decentralized applications (dApps). Lets embark on a journey to understand the significance of MetaMask and how it can empower you in the world of decentralized finance (DeFi).
무료웹툰 Email Homepage
2024-2-26 15:36
<a href="https://toons.info" target="_blank" rel="noreferrer noopener">무료웹툰</a> <a href="https://toons.info" target="_blank" rel="noreferrer noopener">웹툰사이트</a> <a href="https://toons.info" target="_blank" rel="noreferrer noopener">웹툰추천</a> <a href="https://toons.info" target="_blank" rel="noreferrer noopener">무료웹툰사이트</a> <a href="https://toons.info" target="_blank" rel="noreferrer noopener">웹툰</a> <a href="https://toons.info" target="_blank" rel="noreferrer noopener">웹툰순위</a> <a href="https://toons.info" target="_blank" rel="noreferrer noopener">웹툰 사이트</a> <a href="https://toons.info" target="_blank" rel="noreferrer noopener">해피툰</a> <a href="https://toons.info" target="_blank" rel="noreferrer noopener">웹툰 추천</a> <a href="https://toons.info" target="_blank" rel="noreferrer noopener">툰코</a> <a href="https://toons.info" target="_blank" rel="noreferrer noopener">추천웹툰</a> <a href="https://toons.info" target="_blank" rel="noreferrer noopener">웹툰사이트 추천</a> <a href="https://toons.info" target="_blank" rel="noreferrer noopener">웹툰보기</a> <a href="https://toons.info" target="_blank" rel="noreferrer noopener">뉴토끼</a> <a href="https://toons.info" target="_blank" rel="noreferrer noopener">늑대닷컴</a>
Trezor Suite Email
2024-2-26 16:28
"Trezor Suite is a comprehensive cryptocurrency management platform provided by Trezor, accessible via download from their official website. It offers a user-friendly interface for managing assets securely. https://sites.google.com/trezorwalte.com/trezorsuite/home/ Access the Trezor interface to manage your cryptocurrencies securely, providing enhanced protection against unauthorized access and ensuring the safety of your digital assets.https://sites.google.com/trezorwalte.com/trezoriostart/home/
Trezor App Email Homepage
2024-2-26 17:01
The Trezor app provides a secure and user-friendly interface for managing cryptocurrency assets. With features like transaction signing, portfolio tracking, and account management, it offers peace of mind for crypto investors.https://sites.google.com/trezorwalte.com/trezorapp/home
ROBERT Email
2024-2-26 19:47
Trezor.io/start is your gateway to securely managing your cryptocurrency assets with a Trezor hardware wallet. With its user-friendly interface and robust security features, Trezor.io/start provides step-by-step guidance to set up and use your device effectively.coinspot login is your gateway to accessing your cryptocurrency trading account. Start by visiting the official CoinSpot website and locating the login page. Enter your registered email address and password accurately.
웹툰순위 Email Homepage
2024-2-27 15:04
<a href="https://toons.info" target="_blank" rel="noreferrer noopener">무료웹툰</a> <a href="https://toons.info" target="_blank" rel="noreferrer noopener">웹툰사이트</a> <a href="https://toons.info" target="_blank" rel="noreferrer noopener">웹툰추천</a> <a href="https://toons.info" target="_blank" rel="noreferrer noopener">무료웹툰사이트</a> <a href="https://toons.info" target="_blank" rel="noreferrer noopener">웹툰</a> <a href="https://toons.info" target="_blank" rel="noreferrer noopener">웹툰순위</a> <a href="https://toons.info" target="_blank" rel="noreferrer noopener">웹툰 사이트</a> <a href="https://toons.info" target="_blank" rel="noreferrer noopener">해피툰</a> <a href="https://toons.info" target="_blank" rel="noreferrer noopener">웹툰 추천</a> <a href="https://toons.info" target="_blank" rel="noreferrer noopener">툰코</a> <a href="https://toons.info" target="_blank" rel="noreferrer noopener">추천웹툰</a> <a href="https://toons.info" target="_blank" rel="noreferrer noopener">웹툰사이트 추천</a> <a href="https://toons.info" target="_blank" rel="noreferrer noopener">웹툰보기</a> <a href="https://toons.info" target="_blank" rel="noreferrer noopener">뉴토끼</a> <a href="https://toons.info" target="_blank" rel="noreferrer noopener">늑대닷컴</a>
Vipraipurescorts
2024-2-27 19:11
If you are looking for a special someone to take to a special event, then you should definitely consider hiring a Raipur Call Girls These girls are the perfect date for any occasion. You will not be disappointed with their company.
Vipraipurescorts Email
2024-2-27 19:12
If you are looking for a special someone to take to a special event, then you should definitely consider hiring a Raipur Call Girlsl. These girls are the perfect date for any occasion. You will not be disappointed with their company.
Vipraipurescorts Email
2024-2-27 19:13
There are many types of Raipur call girls that a person can choose from. There are many agencies that provide such services and the rates for these services vary depending on the type of girl that is chosen. There are many ways to find out about the different types of Raipur call girls. One can either go through the websites of these agencies or can ask people who have used their services before. It CLICK HERE: https://www.vipraipurescorts.com/call-girls-raipur.html
f Email Homepage
2024-2-27 19:19
Trezor Wallet provides a hardware solution for offline storage and management of cryptocurrencies, boasting strong security measures and a user-friendly design. It ensures a safe and simple method for users to access and monitor their digital assets.Trezor Bridge is an essential software component that enables secure communication between the Trezor hardware wallet and a computer or mobile device. It ensures uninterrupted access to the Trezor Wallet interface, simplifying cryptocurrency management for users.
elola Email
2024-2-27 20:33
Get your hands on the Crypto.com Card and enjoy the convenience of using cryptocurrency for everyday purchases. Plus, earn rewards and cashback as you spend! Sign up now.Welcome to the Crypto.com Arena - the world's leading cryptocurrency arena for buying, selling and trading. Join us today to experience a whole new level of crypto exchange!Crypto.com Card | Crypto.com Arena
dilara Email Homepage
2024-2-28 15:52
Walmart is a huge retailer across the United States with a massive number of branches across the nation. Walmart offers gift cards to its specific customers. If you're one of those customers and would like to know you Walmart Balance on your Gift Card Balance you're at the right location.walmart gift card balance | walmart gift card balance | walmart gift card balance | macy's gift card balance | vanilla gift card balance | vanilla gift card balance | macy's gift card balance | nordstrom gift card balance | Walmart Gift Card Balance | home depot gift card balance | paypal login | venmo login | amazon.com/redeem | dunkin donuts gift card balance | amazon.com/redeem | amazon.ca/redeem | amazon.co.uk/redeem | Sephora gift card balance  | target.com/check balance | Nike gift card balance | chilis gift card balance | ulta gift card balance | vanilla gift card balance
walmart gift card balance Email Homepage
2024-2-28 15:55
You can check the balance of your Walmart credit card balance using three different ways. Here are a few ways to verify your Walmart credit card balance. You can determine the amount of money in you Walmart gift card accessible right at the moment.https://sites.google.com/view/walmartgiftcardbalancecheckk/https://sites.google.com/view/walmartgiftcardbalancee/https:/...
walmart gift card balance Email Homepage
2024-2-28 16:02
The cards mentioned above are available for different shopping requirements. It is possible to give an exclusive gift card to restaurants to your loved ones to allow them to dine at the restaurant they love, such as Dominos, or even subway.https://sites.google.com/view/walmartgiftcardbalancecheckk/ |https://sites.google.com/view/walmartgiftcardbalancee/ |https://sites.google.com/wallmartgiftcardbalance.com/walmartgiftcardbalancecheck/ |https://www.macysgiftcardbalance.com/ |https://sites.google.com/vanillaegiftcardbalance.org/vanillagiftcardbalance/ |https://sites.google.com/vanillaegiftcardbalance.org/vanillagiftcardbalancee/ |https://www.macygiftcardbalancee.com/ |https://www.nordstromgiftcardbalance.com/ |https://sites.google.com/wallmartgiftcardbalance.com/walmartgiftcardbalance/ |https://sites.google.com/view/walmartgiftcardbalancecheckk/ |https://sites.google.com/view/homedepotgiftcardbalances/ |https://sites.google.com/paypalloginus.com/paypal-login/ |https://sites.google.com/view/venmol0gin/ |https://sites.google.com/view/url-amazon-com-redeem/ |https://sites.google.com/view/dunkindonutsgiftcardbalances/ |https://sites.google.com/view/amazoncomredeemgift/ |https://sites.google.com/view/amazon-redeem-canada/ |https://sites.google.com/view/amazoncomredeemuk/ |https://sites.google.com/view/sephoragiftcardbalance/ |https://sites.google.com/view/targetcomcheckbalance/https://sites.google.com/view/nikegiftcardbalance/ |https://sites.google.com/view/chilisgiftcardbalance/ |https://sites.google.com/view/ultagiftcardbalance/ |https://sites.google.com/vanillaegiftcardbalance.org/vanilla-gift-card-balance/ |
Dennis Walker Email Homepage
2024-2-29 17:55
Check a target gift card balance​​ Gently remove the metallic strip on the back of your gift card to reveal both the card and the access numbers. over the phone, or in-store. Follow these easy steps to check your balance and manage your Target gift card.check target gift card balance,target gift card balance,
bharatjodonyayyatra Email Homepage
2024-2-29 22:30
This is my first time visit to your blog and I am very interested in the articles that you serve. Provide enough knowledge for me. Thank you for sharing useful and don't forget, keep sharing useful info: Rahul Gandhi Yatra , Rahul Gandhi News
分页: 415/433 第一页 上页 410 411 412 413 414 415 416 417 418 419 下页 最后页
发表评论
表情
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
打开HTML
打开UBB
打开表情
隐藏
记住我
昵称   密码   游客无需密码
网址   电邮   [注册]