Varnish

All webtrafikk på Samfundet går gjennom Varnish, en cachende reversproxy, før den treffer Apache. (SSL-trafikk går gjennom Hitch før den treffer Varnish, siden Varnish i seg selv ikke snakker SSL/TLS. Hitch er en SSL-terminator vedlikeholdt av Varnish-teamet.)

Det å ha Varnish foran i stedet for å la Apache snakke med brukere direkte er mer effektivt, av to årsaker:

I utgangspunktet står alle sider på Samfundet i «pass», slik at Varnish ikke prøver på noe caching overhodet. De store unntakene per september 2016 er uka.no og deler av samfundet.no (spesielt bilder). Imidlertid er det lett å sette opp caching om man plutselig får voldsom trafikk mot én side (f.eks. ved store billettslipp e.l.), siden alt allerede rutes gjennom Varnish. Husk å bruke reload og ikke restart om du endrer VCL; Varnish beholder ikke cachen sin på tvers av omstarter.

I utgangspunktet vil Varnish gjenbruke tilkoblinger til en backend (altså Apache), også på tvers av vhosts. Dette er et problem for oss siden vi bruker mpm-itk, hvor da Apache-barnet setter en uid på begynnelsen av tilkoblingen (og ikke får lov til å bytte tilbake). Derfor har vi noen små patcher i Varnish og vmod_gwist for å sikre at dette ikke skjer (det mest realistiske alternativet ville være å sette «Connection: close» på alle backend-requests, som er mulig men litt ineffektivt).

Sette opp ny vhost

  1. Lag vhosten i /etc/apache2/sites-available/foo.conf. Den skal være av typen <VirtualHost localhost:80>. Ikke sett opp noe om SSL, det tar Hitch seg av. Enable vhosten med «a2ensite foo». Reload Apache («systemctl reload apache2»).
  2. Om du vil ha HTTPS-redirect (mest sannsynlig vil du), legg til vhosten i den store if-en under «HTTPS redirect» i /etc/varnish/default.vcl. Reload Varnish («systemctl reload varnish»).
  3. Pek DNS-innslaget i /etc/bind/pz slik at det er CNAME til cirkus.samfundet.no. Inkrementer seriellen, signer sonen («zonesigner samfundet.no») og reload bind («systemctl reload bind9»). Vent på propagering. Done!

Flyt av forespørsler

En forespørsel til cirkus begir seg ut på litt av en reise, se bildet under.

Intern flyt av IP-adresser

Det skal bittelitt triksing til for å bevare IP-adressen hele veien nedover stacken. Slik ser det ut:

Lenker: Start, krisevarnish, letsencrypt, til nye itkere

Mail: itk@samfundet.no | Telefon: 992 15 925 | Sist endret: 2018-05-15 23:24 | Revisjon: 2 (historie, blame) | Totalt: 1479 kB | Rediger