CentOS伺服器給WordPress安裝Varnish加速
Varnish是一款高效能的開源HTTP加速器,挪威最大的線上報紙Verdens Gang (http://www.vg.no) 使用3台Varnish代替了原來的12台squid,效能居然比以前更好。可見Varnish是一個相當強大的加速器。下面羅伊給大家介紹如何在CentOS上安裝Varnish來給你的WordPress部落格加速。
1,安裝Varnsih
使用SSH登入你的VPS,執行下面的命令來安裝Varnish:
yum install varnish
然後我們啟動Varnish:
/etc/init.d/varnish start
設定為開機啟動:
chkconfig –level 345 varnish on
2,配置Varnish
開啟default.vcl:
nano /etc/varnish/default.vcl
確認預設的default.vcl和下面的代碼相匹配:
# 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";}重啟Varnish使其生效:
/etc/init.d/varnish restart