[文章作者:张宴 本文版本: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
Harlanzhu
2022-9-5 17:45
I'm really happy to have found this site on bing, exactly what I was looking for.more here
aaronwatson
2022-9-5 20:35
Sildalist 120 is one of the best generic drugs on the market that cures erectile dysfunction. Both medications play a vital role in the treatment of erectile dysfunction. The former is necessary to induce an erection after s*xual stimulation. Due to its effect, the level of blood circulation in the genitals increases significantly, due to which an erection occurs. Aurogra 100 contains sildenafil citrate and tadalafil in one tablet. The second component is an activator of the action of the first, and its purpose is to prolong the erection during s*xual intercourse. This unique combination of two similar active ingredients allows patients to have an erection within 15-20 minutes after drug administration.
aaronwatson
2022-9-5 20:36
No Iverheal 6mg and Viagra are not close to each other they forget to cure the same disorder. Iverheal 12 is a drug that can help you cure parasitic infections of the eyes, skin, and intestines, while Viagra is a PDE-5 hormone inhibitor that helps you get harder erections. People allergic to generic Ziverdo Kit are listed in the most severe risk categories and receive a clear warning sign for the use of ivermectin 6 mg. Taking a generic Iverheal 12mg pill is pretty simple on its own. You can easily swallow a Iverheal 12mg tablet with some water in your mouth. After swallowing the pill, it will take a while for the effects to appear, which can take up to a week in some cases.
aaronwatson
2022-9-5 20:43
Kamagra 100mg tablets need to be taken within an hour of having s*x, and in most cases will help you achieve an erection in about 30 minutes, which will last for about 4 hours, provided you are sexually aroused. Kamagra 100 mg tablets do not work if you are not excited. Kamagra Oral Jelly tablets contain sildenafil, which treats erectile dysfunction in men by increasing blood flow to the p*nis. When taken before planned sexual activity, Super Kamagra tablets inhibit the breakdown of a chemical called cGMP, produced in the erectile tissue of the p*nis during s*xual arousal, and this action allows blood to flow into the penis and cause an erection. If you eat a large meal before taking the Kamagra Chewable tablet, it may take longer for it to work. You should not take more than one tablet a day and only if you plan to have sexual intercourse.
aaronwatson
2022-9-5 20:44
This is a Vilitra 40 used to help men with erectile dysfunction get erections when needed. The component of the drug that gives it strength is Vardenafil. This ingredient is used in the manufacture of Levitra, an erectile dysfunction drug commonly marketed in the United States. Super Vilitra causes vasodilation, which can lead to increased blood flow to different organs. Vardenafil 40mg is considered a safe yet potent dose for treating impotence. Vilitra 20 for impotent men and is indicated both on the box and in the leaflet. However, not all impotent men are welcome to use it. There are other causes of impotence that cannot be treated with this drug and therefore a different treatment should be sought. You can create a change in your quality of life by using Vilitra 60 as advised by medical experts. It's no secret that life for people with erectile dysfunction is very unpleasant.
aaronwatson
2022-9-5 20:46
It is Vidalista 40 tadalafil ten tablets where the dynamic fixation is tadalafil. The comparable part of the drug is responsible for relaxing the smooth muscles present in the blood vessel mass of the penis, further working on the progress of blood towards the sexual part of the body. The generally suggested serving of Vidalista 80. It is advisable to take the medication thirty minutes before an erection is desired. If they favor mild indications, the treatment can be less than 5 mg. The drug Extra Super Vidalista treats erectile dysfunction by getting blood flowing to the penis so that a man can get an erection quickly and for longer.
aaronwatson
2022-9-5 20:47
The most extreme suggested dose recurrence of Vidalista 20 is once a day. The serving should not be taken more than once in 24 hours. Please note that this drug should be used clearly before any organized s*xual movement. Remember that it is not taken as a standard medication. The suggested dose of Vidalista 60 for the management of pulmonary hypertension is 10 mg per day. Vidalista 40 mg is one of the experimentally approved proprietary blends of PDE5 inhibitors that work for most men with erectile dysfunction. Any problem in which a person cannot achieve or direct a hard penis (erection) suitable for intercourse. Vidalista Black 80 belongs to the class of drugs that interferes with the PDE5 protein. It prevents the breakdown of cGMP, then blood circulation increases and erection occurs, which causes increased courage in men.
aaronwatson
2022-9-5 20:49
Fildena 120 contains the active ingredient Sildenafil Citrate. Which increases blood flow in the vein, which is helpful in erectile dysfunction. That is why the reason for Fildena 50 online is most of the medicine prescribed by a doctor or doctor. US FDA approved erectile dysfunction drugs should be taken only in adult men. Buy Fildena 150mg tablet online includes some side effects and contraindications, but the efficacy and performance of Fildena XXX , tablet is the most prescribed in the US. Even some cases of heart problems such as hypertension in the case of Fildena 150 mg tablet prescribed by your doctor, but each diagnosis is made under the supervision of a consulting doctor or pharmacist. Fildena Chewable 100 may interact with other medications or supplements you are taking and may cause side effects or prevent your medication from working properly.
aaronwatson
2022-9-5 20:51
Cenforce 100 is a medicine used to treat erectile dysfunction (ED) or impotence in men. Erectile dysfunction is a s*xual disorder that causes poor penile erection in men. However, Cenforce 150 has strict restrictions regarding dosage and consumption. Patients should consult a doctor before taking the drug. Therefore, patients cannot have satisfactory s*x in bed. Cenforce D is a powerful medication for erectile dysfunction. In addition, this drug helps reactivate the erection for better intimacy. The drug is very effective and can provide a rigid erection in a matter of minutes. Once men take this Cenforce 200 , they can engage in s*xual activity with a high level of endurance for almost 6 hours.
aaronwatson
2022-9-5 20:51
The drug not only makes adult men powerful for s*x, but also improves their self-esteem. Cenforce 120 can bring back the happiness lost in your love life. Currently, several men are using this Cenforce to show impressive performance during s*xual activity. You and your partner can enjoy orgasm many times after using Cenforce 50 pills and strengthen mutual bond. Also, you will never get into the habit of this drug if you take it under a doctor's supervision. Therefore, forget about stress, depression, low self-esteem and loneliness by taking Cenforce fm 100 magic tablets. Cenforce 100 is a medicine for adult men with erectile dysfunction. Sildenafil citrate is the active compound in this drug.
aaronwatson
2022-9-5 20:51
Fildena 150 is also known as a "magic pill" as it helps men all over the world get an erection and keep it longer. S*xual inability, also known as erectile dysfunction, is a common problem faced by men all over the world. Men all over the world are taking Fildena 100 in pill form to fight their s*xual intercourse and achieve great long lasting erection. Fildena Super Active tablet is composed of Sildenafil Citrate, which is PDE type 5, it is cGMP inhibitor in vein and increases blood flow in vein. Usually, who cannot get an erection during s*xual intercourse, this patient will also be prescribed Fildena Professional 100mg in the treatment, a factor that plays a role such as age, weight, etc. Buy Fildena 150 mg tablet is the most prescribed medicine for those who suffer from erectile dysfunction.
gh
2022-9-5 21:00
eluxe ;eluxe ;eluxe ;eluxe ;eluxe ;lesconfidencesdelizzie ;
hgfdjka
2022-9-5 22:05
https://sites.google.com/xn--cryptwallt-76a9i.com/opensea-marketplace/home
fixmatka
2022-9-6 00:01
Nice post. I was checking continuously this blog and I am impressed! Extremely useful information specially the last part I care for such info a lot. I was seeking this particular information for a very long time. Thank you and good luck.Satta Matka
polygonwallet
2022-9-6 13:03
A Polygon wallet is a blockchain wallet of the Polygon variety used to store and manage MATIC -- the native cryptocurrency of the Polygon network. With a Polygon wallet, users can store, send, receive and manage MATIC. Coinbase customers can convert their fiat to ETH, MATIC, and USDC and fund their Polygon wallet at a fraction of the cost and time, making it simple to explore more of web3.
sgdfbfxb
2022-9-6 16:49
To sum up, traders who are looking to set up their Trezor hardware wallet can follow the quick processes that are described above on this page. Make sure that your Trezor device is connected to your mobile or computer whenever you think to start accessing the wallet. In case you are getting any type of issues, you need to contact and discuss the matter with the Trezor customer support team. Now, we are sure that you have set up and accessed your Trezor Wallet with the help of this post.https://sites.google.com/uscryptowallett.com/trezorwallet/homehttps://sites.google.com/uscryptowallett.com/trustwallet/h...
Singapore Airlines Switzerland Office
2022-9-6 17:44
Thanks for sharing this unique content. Great article data and I got extremely many topic information. I appreciate your work. Singapore Airlines is a main air service in the country generally famed for offering voyager truly much arranged administrations and the yard of master customer care administrations. Assuming you dwell in Dubai and need to go with Singapore Airlines ultimately yet you ought to keep the area of the <a href="https://www.justcol.com/address/singapore-airlines-switzerland-office/">Singapore Airlines Switzerland Office</a> and its other contact details in helpful. This detailed guard brings every one of the beginning information about the Singapore Airlines Switzerland Office that you should know to plan a memorable trip.
EG
2022-9-6 18:22
https://www.credly.com/users/liposuccion-tunisie/badges ;https://evisionthemes.com/supports/users/blogdesfemmes/ ;https://community.windy.com/user/blog-des-femmeshttps://solo.to/blogdesfemmes ;
EG
2022-9-6 18:22
https://wright-realtors.tribe.so/user/blogdesfemmes ;
EG
2022-9-6 18:23
https://www.elephantjournal.com/profile/blogdesfemmes/ ;https://devnet.kentico.com/users/514479/blog-desfemmes ;https://namelessmc.com/profile/blogdesfemmes/ ;https://www.diggerslist.com/liposuccion/about
分页: 330/436 325 326 327 328 329 330 331 332 333 334