[文章作者:张宴 本文版本: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):
2、创建Varnish日志目录(/var/logs/):
3、编译安装varnish:
4、创建Varnish配置文件:
输入以下内容:
这里,我对这段配置文件解释一下:
(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
6、启动varnishncsa用来将Varnish访问日志写入日志文件:
7、配置开机自动启动Varnish
在末尾增加以下内容:
8、优化Linux内核参数
在末尾增加以下内容:
再看看如何管理Varnish:
1、查看Varnish服务器连接数与命中率:
2、通过Varnish管理端口进行管理:
用help看看可以使用哪些Varnish命令:
3、通过Varnish管理端口,使用正则表达式批量清除缓存:
(1)、例:清除类似http://blog.zyan.cc/a/zhangyan.html的URL地址):
(2)、例:清除类似http://blog.zyan.cc/tech的URL地址:
(3)、例:清除所有缓存:
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文件内容如下:
设置在每天00:00定时执行:
我曾经写过一篇文章──《初步试用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
/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
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
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;
}
}
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
/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 &
/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
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
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
# 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
olivila
2021-10-12 14:49
Microsoft 365 setup offers Office apps and additional Microsoft services. offers access to the Microsoft 365 software product. This portal allows downloading office apps on your 32 or 64-bit system. In addition, you can activate the Microsoft services using a product key, and so a Microsoft account will be needed.https://microwsoft365setup.com/,https://123hp.com-laserjet.com/,https://istartsetup.com/https-ij-start-cannon/
olivila
2021-10-12 14:49
Microsoft 365 setup offers Office apps and additional Microsoft services. offers access to the Microsoft 365 software product. This portal allows downloading office apps on your 32 or 64-bit system. In addition, you can activate the Microsoft services using a product key, and so a Microsoft account will be needed.https://microwsoft365setup.com/,https://123hp.com-laserjet.com/,https://istartsetup.com/https-ij-start-cannon/
OLIVILA
2021-10-12 14:50
Microsoft 365 setup offers Office apps and additional Microsoft services. offers access to the Microsoft 365 software product. This portal allows downloading office apps on your 32 or 64-bit system. In addition, you can activate the Microsoft services using a product key, and so a Microsoft account will be needed.https://microwsoft365setup.com/,https://123hp.com-laserjet.com/,https://istartsetup.com/https-ij-start-cannon/
Jordan Smith
2021-10-12 17:51
Thanks for sharing such a information article with us. I hope you will share more information related this. If you are looking any information regarding norton setup. You can try https://norto0nsetup.com/
Jordan Smith
2021-10-12 17:52
Thanks for sharing such a information article with us. I hope you will share more information related this. If you are looking any information regarding norton setup. You can try https://norto0nsetup.com/
Jordan Smith
2021-10-12 17:52
Thanks for sharing such a information article with us. I hope you will share more information related this. If you are looking any information regarding norton setup. You can try https://norto0nsetup.com/
Jordan Smith
2021-10-12 17:52
Hey...Great information thanks for sharing such a valuable information. We offering the best norton setup services, you are just a click away https://mcaffee1act.com/
Emma Jackson
2021-10-12 18:11
Hello I’m grateful to have read your content thank you. What a nice blog! I have enjoyed reading through the article although I landed on this site. If you are having issues in getting your ghostwriter completed accurately then do not hesitate expository essay examples and get your papers checked by the essay help online in AU experts at GoAssignmentHelp. Visit - Assignment Help
Indian Company Formation
2021-10-12 18:28
If you are looking for <a href= "https://ondemandint.com/indian-company-formation/" >company formation in india</a> Odint consulting is one of the best consulting firms. We work on the adage of association with our customers from INSIGHT to IMPACT or from recognizing freedoms to carrying out them. We have a superior comprehension of the Indian, European, and Middle East Markets which better assists you with hanging out in the worldwide market. We lead, a top to bottom examination of the market that we offer administrations in and stay educated regarding any new turns of events. We have an enthusiastic group that works day in and day out to give you state of the art administrations and assist you with enrolling in India, the UAE, and European nations.
Company registration in India
2021-10-12 19:39
If you are looking for <a href="https://ondemandint.com/indian-company-formation/" >company registration in India</a> Odint Consulting is one of the best consulting firms. We are committed to the motto of working with customers, from insight to influence, or from finding opportunities to implementing opportunities. We have a deeper understanding of the Indian, European and Middle East markets to help you stand out in the international market. We conduct in-depth analysis of the markets in which we provide our services and keep abreast of new developments. We have a passionate team providing you with cutting-edge services 24/7 and helping you register in India, UAE and European countries.
mshahidd
2021-10-12 19:59
Having been simply looking at useful blog articles with regard to the project research when My partner and i happened to stumble on yours. Thanks for this practical information! 먹튀검증
مركز صيانة
2021-10-12 20:16
https://www.eg-gc.comhttps://kiriazi.eg-gc.comhttps://zanussi.eg-gc.comhttps://universal.eg-gc.comhttps://ariston.eg-gc.comhttps://toshiba.eg-gc.comhttps://samsung.eg-gc.comhttps://electrostar.eg-gc.comhttps://whitewhale.eg-gc.comhttps://lg.eg-gc.comhttps://whirlpool.eg-gc.comhttps://general-electric.eg-gc.comhttps://unionaire.eg-gc.com
Indian company registration
2021-10-13 01:03
If you are looking for <a href=https://ondemandint.com/indian-company-formation/ >Indian company registration</a> Odint Consulting is a well regarded consulting firm. We are dedicated to working with customers, from insight to impact, or from identifying opportunities to putting them into action. To help you stand out in the international market, we have a greater grasp of the Indian, European, and Middle Eastern markets. We perform in-depth analyses of the markets in which we operate and stay up to date on new developments. We have a dedicated team dedicated to providing you with cutting-edge services 24 hours a day, seven days a week, and assisting you in registering in India, the United Arab Emirates, and other European nations.
Tomcook280
2021-10-13 12:51
The setup process for every Canon model is almost similar, however the download through https //ij.start.cannon or http //ij.start.cannon and installation process may differ. Visit canon’s official site – ij.start.canon/ts3122 and download appropriate software and drivers one windows PC. Use the “TS3122” name to get the latest software. Or if you have a CD, install it. ij.start canon is the manufacturer's site to download Canon printer drivers.
Tomcook28
2021-10-13 12:52
Complete Trend Micro Activation from www.trendmicro.com/activate using the product key. Enter your activation code and sign in to download its products. Make sure you accept the Trend micro license Agreement you receive on www.trendmicro/activate to register your product securely.
Jordan Smith
2021-10-13 14:12
Thanks for sharing such a information article with us. I hope you will share more information related this. If you are looking any information regarding norton setup. You can try https://norto0nsetup.com/
Jordan Smith
2021-10-13 14:12
Thanks for sharing such a information article with us. I hope you will share more information related this. If you are looking any information regarding norton setup. You can try https://mcaffee1act.com/
Allen wade
2021-10-13 14:14
Canon printers are ideal for every situation wherever you need a document, paper, or photo print or even if you wish to scan, fax, and do more https://www.mijstartcano-n.org/https://www.ca-nonijmanualset.com/
smithmachinst
2021-10-13 17:23
Elan Group is one of the first-rate known, depended on and quickest developing Real Estate corporations in India. The institution has been a chief alternate issue of the Indian realty scenario; taking the industrial actual property to an altogether new degree with its benchmark creations withinside the remaining four years – Mercado, Elan Town Centre and Elan Miracle. Key2benefits Login | Elan Group Projects | Elan Empire Gurgaon | Elan Group Projects | Elan Group | Elan empirewells fargo / bank of america wells fargo login | wells fargo login | wells fargo login | wells fargo login | bank of america login | bank of america login | bank of america login | bank of america login | bank of america login | bank of america signin | bank of america signin |Aolmail com is an internet mail provider supplied through AOL inc (called American Online), a subsidiary of Verizon Communications. The net primarily based totally e-mail provider changed into pretty famous in the sooner days whilst it has started. Nowadays it's been substantially overshadowed through e-mail giants like Gmail and Yahoo. aol mail login | aol mail login | aol mail login | aol mail login | aol mail login | aol mail login | aol mail login | aol mail login | aol mail login | aol mail login |First of all, in case you are a First Time User otherwise you want to check in with Bendigo Bank. To begin with, click on at the Register on proper hand phase option. After calling or touring the bank, the net banking facility might be activated via way of means of the bank. The clients can log in to the net banking account.Bendigo bank login | anz login | st georgelogin | suncorp login | cba login | cash app login | cashapp login | cash app login | www.netspend.com/activation | netspend.com/activate | netspend login | greendot.com register | greendot login | key2benefits card loginThere are a few primary matters that you may do to restore the Coinbase login problems. If you're going through problem in finishing the coinbase authenticator and verification steps to sign up in your account, then you definitely want to ensure that your cell tool and the Coinbase login app are up to date. If you're the usage of a browser to login, then you definitely want to ensure which you are the usage of the up to date net browser and clearing your Cache, and restarting the browser again. Similar steps are to be accompanied while you are going through problems and spot the coinbase app now no longer working. coinbase login | gemini login | binance login | coinbase pro login | capital one login | capital one login | capital one loginBank of America turned into named the Best Digital Bank withinside the US via way of means of Global Finance in September, which acknowledges businesses for virtual leadership. Judges primarily based totally their choice on some of categories, which include servicing virtual customers and internet and cellular web website online layout and functionality. The enterprise additionally ranked primary for on-line and cellular banking via way of means of J.D. Power. bank of america login > bank of america login > bank of america login | kraken login
Jordan Smith
2021-10-13 17:34
Thanks for sharing such a information article with us. I hope you will share more information related this. If you are looking any information regarding norton setup. You can try https://mcaffee1act.com/
分页: 257/438 252 253 254 255 256 257 258 259 260 261