Kategorier
Tips og triks

Ubuntu + nginx + varnish

nginx

Men ikke alt fungerer som det skal med det første. Her er noen erfaringer jeg gjorde meg.

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]

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *

Dette nettstedet bruker Akismet for å redusere spam. Lær om hvordan dine kommentar-data prosesseres.