Today I understand that proxy site nqma.net had some very strange problem. The problem was when you enter some url , then nothing happends.
This is because of the varnish proxy server in front of it and the round robin function.
I try this long time ago , but with no luck.. I wrote this tutorial but still https doesn’t workin. Its open 443 port , but in varnishlog it says „timeout“.
Today I decide to try little trick with rinetd (debian based port forwarding tool) to redirect 443 port to my local ip address of the web server. This is my rinetd.conf :
#
# this is the configuration file for rinetd, the internet redirection server
#
# you may specify global allow and deny rules here
# only ip addresses are matched, hostnames cannot be specified here
# the wildcards you may use are * and ?
#
allow *
#
# forwarding rules come here
#
# you may specify allow and deny rules after a specific forwarding rule
# to apply to only that forwarding rule
#
# bindadress bindport connectaddress connectport
my.web.address.of.varnish.cache.server 443 192.168.*.* 443
# logging information
logfile /var/log/rinetd.log
# uncomment the following line if you want web-server style logfile format
# logcommon
I remove 443 port on /etc/default/varnish , restart rinetd and now my blog works with https and spdy!
I know that varnish now doesn’t cache , but the main purpose is http to works , and now it works! Now I’m behind varnish again! I feel good yeah! My score at pingdom will continue to increase :whistle:
Привет, днес ще пиша за тези два страхотни плугина за кеширане. От около 2 години използвам WP SuperCache и бях много доволен заради това как е направен юзър френдли и колко лесно се работи с него.
Тъй като мен ме гризе отвътре да се занимавам с нещо по-предизвикателно , реших днес да сменя WP SuperCache с другия така прехвален плугин W3 Total Cache. Този плугин го ползвам в един от сайтовете ми, и наскоро видях че има голям ъпдейт , че така реших ,че е момента и аз да го пробвам. Хареса ми това колко много функции има, поддръжка на ETag ,компресирането на css и js , работи с varnish който ползвам и аз и много други! Просто страхотно!
Разбира се, имах малко проблеми в началото точно с minify настройките му , но не ми отне много време да ги оправя и да тествам след това.
Прилагам графика от pingdom за резултатите на блога ми в период от няколко месеца, където си личи че работата ми си струва, и резултатите говорят сами за себе си 🙂
От днес мога да се похваля ,че блога ми вече се работи на новия протокол на гугъл – а именно – SPDY. За целта пачнах nginx-а до най-новата версия 1.3.5 с пач за spdy и пуснах блога да се вижда с истинското си айпи и вече не минава през cloudflare. Причината за това е чисто финансова. При cloudflare трябваше да си закупя Pro акаунт за 20 $ на месец , а сега си закупих за ~ 28лв сертификат от godaddy и си свърших работата перфектно! Единствения минус е кеширането на cloudflare :pouty: . Най-интересното в случая са тестовете които направих преди и след тази маневра . Ето ги и тях:
Тест преди spdy с cloudflare:
Тест след пачването със spdy и вече без cloudflare:
Ако може да се вярва на теста направен на pingdom.com , то моя блог е значително по-бърз сега , задвижвайки се само на изпитаната от мен комбинация от varnish+nginx+php5-fpm :biggrin:
За финал ще кажа че след тези ядрени опити забелязвам известна нестабилност във firefox – някой линкове в сайта ми не работят коректно – дава 404 , през google chrome няма проблеми, както и през lynx и през какви ли още не тестове. Надявам се това да е нещо временно.. и утре да е ок вече!
PS: Открих проблема с 404 , грешка в конфига на виртуалния хост :sideways:
Днес ъпдейтнах версията на линукса на сървъра на който хоствам блога си. Причината е заради добрите впечетления които ми остави при сървъра на nqma.net на който редовно му крашваше ядрото заради големия лоад и вечно беше лагнат. Може би заради новото ядро версия 3 сега всичко лети :silly:
След като сторих същата операция и на този сървър се натъкнах на няколко новости и бъгове:
1во – varnish-a вече е версия 3 и съответно стария конфиг файл даде множество грешки и поради това вече ползвам нов конфиг файл:
backend default {
.host = "127.0.0.1";
.port = "8080";
}
acl purge {
"localhost";
}
sub vcl_recv {
if (req.request == "PURGE") {
if (!client.ip ~ purge) {
error 405 "Not allowed.";
}
return(lookup);
}
if (req.http.Accept-Encoding) {
#revisit this list
if (req.url ~ ".(gif|jpg|jpeg|swf|flv|mp3|mp4|pdf|ico|png|gz|tgz|bz2)(?.*|)$") {
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.url ~ ".(gif|jpg|jpeg|swf|css|js|flv|mp3|mp4|pdf|ico|png)(?.*|)$") {
unset req.http.cookie;
set req.url = regsub(req.url, "?.*$", "");
}
if (req.url ~ "?(utm_(campaign|medium|source|term)|adParams|client|cx|eid|fbid|feed|ref(id|src)?|v(er|iew))=") {
set req.url = regsub(req.url, "?.*$", "");
}
if (req.http.cookie) {
if (req.http.cookie ~ "(wordpress_|wp-settings-)") {
return(pass);
} else {
unset req.http.cookie;
}
}
}
sub vcl_fetch {
if (req.url ~ "wp-(login|admin)" || req.url ~ "preview=true" || req.url ~ "xmlrpc.php") {
return (hit_for_pass);
}
if ( (!(req.url ~ "(wp-(login|admin)|login)")) || (req.request == "GET") ) {
unset beresp.http.set-cookie;
set beresp.ttl = 1h;
}
if (req.url ~ ".(gif|jpg|jpeg|swf|css|js|flv|mp3|mp4|pdf|ico|png)(?.*|)$") {
set beresp.ttl = 365d;
}
}
sub vcl_deliver {
# multi-server webfarm? set a variable here so you can check
# the headers to see which frontend served the request
# set resp.http.X-Server = "server-01";
if (obj.hits > 0) {
set resp.http.X-Cache = "HIT";
} else {
set resp.http.X-Cache = "MISS";
}
}
sub vcl_hit {
if (req.request == "PURGE") {
set obj.ttl = 0s;
error 200 "OK";
}
}
sub vcl_miss {
if (req.request == "PURGE") {
error 404 "Not cached";
}
}
Така.. вече varnish-a работи , даже и по-бързо (така мисля де)
Сега дойде реда на eAcceleratora който също вече не работи , причината е че php-то вече е 5.4 а eAccelerator-a е морално остарял продукт който от няколко години не се подържа и съответно няма работеща версия за новото php 5.4. Поради този факт реших да го разкарам и се спрях на xcache . След малко модвания и инсталиране на админ панел всичко си дойде на място . Повече инфо за xcache в сайта им.
След ъпгрейда на линукса се ъпдейтна и версията на lighttpd на 1.4.30 . Тъй като наскоро имах проблем с lighttpd реших да пробвам дали с новата версия случайно проблема не е оправен. Ами.. да ! оправен е. Знаех си че проблема не е в мен и в моя конфиг :happy: . Сега всичко лети както трябва да лети по принцип. Поради това cdn-a ми отново се задвижва на lighttpd !
Единственото нещо което след проба не работеше както трябва да е dl-то през varnish , тегленето от там на големи файлове става много мудно. Предполагам че е въпрос на настройки на varnish-a но сега не ми се занимава да го ровя!
И да обобщя , мигрирането към тестинг е нож с две остриета. Колегата ми Калоян винаги ми е казвал че когато нещо работи , то не трябва да се пипа и ъпдейтва 😎 , аз съм на друг принцип и винаги търся обновяването – което не винаги е хубаво 😉 !