EDBloggen

Alexander Karlstad. Blogger hovedsakelig om Linux og sånt.

Ubuntu + nginx + varnish

Nginx

Det er ingen global konfigurasjonsmulighet til Nginx som sier at den skal lytte til *:8080 eller localhost:80. Dette må settes eksplisitt i hver eneste server-config (filene som ligger under /etc/nginx/sites-available/). Hvis du vil at sidene kan være offentlig tilgjengelig utenfor varnish, kan du kun skrive «listen 8080;», eller så er det anbefalt å prefikse med localhost – «listen localhost:8080;». Pass også på at du får endret det på alle server {}-blokker i filene. Det kan være flere, spesielt hvis man videresender fra www.domene.no til domene.no.

Slå av automatisk videresending med portnummer. Porten endrer du jo, og det fører bare til at den videresender til en adresse som ikke kan nås fra internett (siden nginx lytter på localhost:8080), eller at man kommer til den u-cachede versjonen. Dette gjør du med «port_in_redirect off;», og den kan settes rett i nginx.conf, så slipper du å tenke noe mer på det med server-configene.

Endre fastcgi_params så den setter riktig SERVER_PORT. Dette hvis du bruker php-fpm eller en annen form for proxy for ikke-statiske filer. Endre til:

fastcgi_param   SERVER_PORT     $http_x_forwarded_port;

Varnish

Sjekk /etc/default/varnish og endre så varnishd lytter til riktig port:

DAEMON_OPTS="-a :<port> \
    -T localhost:6082 \
    -f /etc/varnish/default.vcl \
    -S /etc/varnish/secret \
    -s malloc,256m"

Sjekk deretter /etc/varnish/default.vcl (som definert i parameteret -f ovenfor) at den sender forespørslene videre til riktig host og port:

[default]
backend default {
.host = "";
.port = " ";
}
[/default]

Skrevet av Alexander Karlstad

24. februar 2012 klokken 09.30

Postet i Tips og triks

Stikkord: , , ,

Skriv en kommentar

Optimization WordPress Plugins & Solutions by W3 EDGE