Varnish is a high-performance open source HTTP accelerator. VerdensGang (http://www.vg.no), Norway's largest online newspaper, uses three Varnish to replace the original 12 squids, delivering better performance than before. Varnish is a very powerful accelerator. Roy will introduce how to install Varnish on CentOS to accelerate your WordPress blog. 1, install Varnsih use SSH to log on to your Varnish is a high-performance open source HTTP accelerator, Norway's largest online newspaper Verdens Gang (http://www.vg.no) using three Varnish replace the original 12 squids, the performance is actually better than before. Varnish is a very powerful accelerator. Roy will introduce how to install Varnish on CentOS to accelerate your WordPress blog.
1. install Varnsih
Log on to your VPS using SSH and run the following command to install Varnish:
yum install varnish
Then we start Varnish:
/etc/init.d/varnish start
Set to boot:
chkconfig –level 345 varnish on
2. configure Varnish
Open default. vcl:
nano /etc/varnish/default.vcl
Make sure that the default. vcl matches the following code:
# Back-Endbackend default {.host = "127.0.0.1";.port = "80";.connect_timeout = 60s;.first_byte_timeout = 10s;.between_bytes_timeout = 10s;} # Customsub vcl_recv {remove req.http.X-Forwarded-For;set req.http.X-Forwarded-For = client.ip; if (req.url ~ "^/wp-(login|admin)") {return (pipe);} if (req.http.Cookie ~"(wp-postpass|wordpress_logged_in|comment_author_)") {return (pipe);} if (req.request == "POST") {return (pass);} if (req.http.Cache-Control ~ "no-cache") {return (pass);} if (req.http.Authorization) {return (pass);} if (req.url ~ "\.(jpg|jpeg|gif|png|ico|css|zip|tgz|gz|rar|bz2|pd f|txt|tar|wav|bmp|rtf|js|flv|swf|htm|html)$") {unset req.http.Cookie;unset req.http.Accept-Encoding;unset req.http.Vary;return (lookup);} if (req.http.Accept-Encoding) {if (req.url ~ "\.(jpg|png|gif|gz|tgz|bz2|tbz|mp3|ogg)$") {remove req.http.Accept-Encoding;} elsif (req.http.Accept-Encoding ~ "gzip") {set req.http.Accept-Encoding = "gzip";} elsif (req.http.Accept-Encoding ~ "deflate") {set req.http.Accept-Encoding = "deflate";} else {remove req.http.Accept-Encoding;}} if (req.backend.healthy) {set req.grace = 30s;} else {set req.grace = 1h;} unset req.http.Cookie;unset req.http.Vary;return (lookup);} sub vcl_fetch {set beresp.grace = 1h;unset beresp.http.set-cookie;if (req.url ~ "\.(jpg|jpeg|gif|png|ico|css|zip|tgz|gz|rar|bz2|pd f|txt|tar|wav|bmp|rtf|js|flv|swf|htm|html)$") {set beresp.ttl = 24h;} else {set beresp.ttl = 5m;}return (deliver);} sub vcl_deliver {if(obj.hits > 0) {set resp.http.X-Cache = "HIT";} else {set resp.http.X-Cache = "MISS";}set resp.http.Cache-Control = "private";set resp.http.Pragma = "private";remove resp.http.X-Varnish;remove resp.http.Via;remove resp.http.Age;remove resp.http.Server;remove resp.http.X-Powered-By;} sub vcl_pipe {set bereq.http.connection = "close";}
Restart Varnish to make it take effect:
/etc/init.d/varnish restart