Rootmanual:Webservern

Från Lysators datorhandbok, den ultimata referensen.
Version från den 15 november 2019 kl. 17.54 av Hugo (diskussion | bidrag) (→‎Information om nya webservern Knuth)
(skillnad) ← Äldre version | Nuvarande version (skillnad) | Nyare version → (skillnad)
Hoppa till navigering Hoppa till sök


Information om nya webservern Knuth

Maskinen är puppeterad i nya kluster-puppet. Dock behöver vissa saker göras manuellt där. Dokumentation för det finns där.

Servern kör en roxen-installation bakom en nginx vilken sköter TLS och en del reverse-proxying. Användares webb-mappar ligger under /srv/www/users och övriga sidor under /srv/www/roxen. Hela /srv/www finns monterad för läs och skrivning på /lysator/www på de Lysator-makskinerna med auto-lysator uppsat.

/home är bind-monterad för att användare ska kunna serva filer från sin hemkatalog, med skrivrättigheter så att man kan länka till en access-logg i sin hemkatalog om man så vill.

Roxen är installerat i /opt/roxen

LiU cert ligger i /etc/ssl/www. www.lysator.liu.se.key samt www.lysator.liu.se.chain.crt (www.lysator.liu.se.crt + DigiCertCA.crt) måste finnas. Let's encrypt sköter resterande cert.

Filer

Filen /lysator/www/roxen/index.html är vår webb-index. /lysator/www/roxen/base.xml inehåller alla roxen-mallar som används.

/lysator/www/roxen/404.inc visas vid 404 fel. För egen 404-sida för subsidor kan en egen 404.inc skapas. Servern letar rätt på en genom att gå upp genom filträdet.

Roxen

Roxen:s admininterface nås enklast på https://knuth.lysator.liu.se.

Information om gamla webservern Nyarlathotep

Servern kör två containers: www och roxen. För att ansluta till konsolen för t.ex. www, kör:

lxc-console -n www

Endast en person kan vara inloggad på en containers konsol i taget, så se till att koppla från efter dig! För att koppla från konsolen trycker du ctrl + a, q. Output från containrarnas konsoler loggas i /var/log/lxc på värden.

Containrarnas uppbyggnad

Containrarnas konfigurationer och filsystem ligger i /lxc. De bind-monterar /bin och /usr (skrivskyddat) från värden, så att man slipper installera mjukvara både i containern och värden. Värden har en syslog-sockel i varje kontainer, så att kontainrarna loggar till värdens syslog. Tjänster i containrarna startas i skriptet /etc/rc i varje container.

www

www har adressen www.lysator.liu.se och kör Nginx och LysCMS. /srv/www/main är bind-monterad med skrivrättigheter. /srv/www/projects och /srv/www/users är bind-monterade skrivskyddat. Nginx' konfiguration ligger i /etc/nginx i containern, och loggar till /var/log/nginx (också i containern). Notera att konfigurationsfilen nginx.conf är versionhanterad med RCS och ska redigeras med ditt användarkonto!

roxen

roxen har adressen roxen.lysator.liu.se och kör Roxen. /srv/www/projects och /srv/www/users är bind-monterade med skrivrättigheter (så att Roxen kan skriva access-loggar med User logger-modulen). /home är bind-monterad för att användare ska kunna serva filer från sin hemkatalog, med skrivrättigheter så att man kan länka till en access-logg i sin hemkatalog om man så vill.

Roxen är installerad under /opt/roxen i containern och admingränssnittet lyssnar på port 21360. Användarrättigheter sätts till www:www permanent när Roxen startar av säkerhetsskäl (root kan bryta sig ut ur en container). Detta betyder att Roxen inte kan startas om från admingränssnittet, utan måste startas om från skalet.

nscd körs på denna container för att snabba upp servningen av användarsidor. Roxen slår upp användarnamn när den servrar användarsidor.

Lathund

Starta om Nginx

lxc-console -n www
nginx -s reload  # Startar endast om arbetarprocesserna

eller

lxc-console -n www
nginx -s quit && nginx

Starta om Roxen

lxc-console -n roxen
/opt/roxen/start --stop && /opt/roxen/start

Starta om LysCMS

lxc-console -n www
kill `cat /var/run/lyscms.pid` && /etc/rc.lyscms

Nagios-testfall

Webservern har flera testfall:

http nginx fcgi Testar om LysCMS-processen svarar genom att hämta /
http nginx file Testar om Nginx kan serva statiska filer genom att hämta /robots.txt
http nginx roxen project Testar om Roxen kan serva projektsidor genom att hämta en projektsida
http nginx roxen user Testar om Roxen kan serva användarsidor genom att hämta en användarsida
http nginx roxen user home Testar om Roxen kan serva användarsidor med symlänkar till /home genom att hämta en symlänk till home på en användarsida
http roxen backend Testar om Roxen svarar genom att ansluta till Roxens admingränssnitt

Statistik

Access-log-statistik går att läsa på https://www.lysator.liu.se/stats/ med Roxen-inloggning. Statistiken uppdateras varje natt och skapas med Webalizer vars konfiguration ligger i /etc/webalizer/webalizer.conf på värden. Om man gör någon ändring i konfigurationen kan man behöva skapa om all statistik från början. Detta görs med kommandot:

su -c stats_regen www

Att skapa om all statistik kan ta allt från lång tid, till väldigt lång tid, beroende på hur fräsch webalizers DNS-cache är. Räkna med att det tar ett par timmar.