Rootmanual:Webservern: Skillnad mellan sidversioner
Baafen (diskussion | bidrag) |
Hugo (diskussion | bidrag) |
||
(29 mellanliggande sidversioner av 3 användare visas inte) | |||
Rad 1: | Rad 1: | ||
[[Kategori:Rootmanual|Webservern]] |
[[Kategori:Rootmanual|Webservern]] |
||
== Hur den är konfigurerad == |
|||
Hur Lysators webserver, som går på [[Uhumhummy]] är konfigurerad är inte fullt så döljt i ett dunkel som det en gång var. |
|||
== Information om nya webservern Knuth == |
|||
Det finns tre virtuella servrar på Uhumhummy - roxen, apache och main. Roxen och apache innehåller webbservrar av just de nämnda typerna. Båda de webbservrarna hanteras av svcadmin, och kan följaktligen startas/stoppas med |
|||
Maskinen är puppeterad i nya kluster-puppet. Dock behöver vissa saker göras manuellt där. Dokumentation för det finns där. |
|||
⚫ | |||
svcadm (enable|disable) (roxen|apache2) |
|||
⚫ | |||
Servern kör en roxen-installation bakom en nginx vilken sköter TLS och en del reverse-proxying. |
|||
De två startar automatiskt. |
|||
Användares webb-mappar ligger under <code>/srv/www/users</code> och övriga sidor under <code>/srv/www/roxen</code>. Hela <code>/srv/www</code> finns monterad för läs och skrivning på <code>/lysator/www</code> på de Lysator-makskinerna med auto-lysator uppsat. |
|||
<code>/home</code> ä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. |
|||
Main-zonen är lite mer spännande. Där krävs det dessutom handpåläggning vid uppstart. |
|||
Roxen är installerat i <code>/opt/roxen</code> |
|||
På main-zonen finns två servrar: en nginx-framända, och en fastcgi-gateway till lysators huvudsida. Nginxframändan startas med |
|||
⚫ | |||
cd /pkg/nginx/<version>/sbin && nginx |
|||
⚫ | |||
Den stängs av genom att kill:a nginx-processen som ägs av root. |
|||
LiU cert ligger i <code>/etc/ssl/www</code>. 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. |
|||
Fastcgi-gateway:en startas och stängs av med |
|||
⚫ | |||
=== Filer === |
|||
/etc/init.d/lyswww start |
|||
/etc/init.d/lyswww stop |
|||
Filen <code>/lysator/www/roxen/index.html</code> är vår webb-index. <code>/lysator/www/roxen/base.xml</code> inehåller alla roxen-mallar som används. |
|||
⚫ | |||
<code>/lysator/www/roxen/404.inc</code> 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 |
== Information om gamla webservern Nyarlathotep == |
||
Servern kör två containers: <code>www</code> och <code>roxen</code>. För att ansluta till konsolen för t.ex. <code>www</code>, kör: |
Servern kör två containers: <code>www</code> och <code>roxen</code>. För att ansluta till konsolen för t.ex. <code>www</code>, kör: |
||
<pre> |
<pre> |
||
Rad 34: | Rad 33: | ||
=== Containrarnas uppbyggnad === |
=== Containrarnas uppbyggnad === |
||
Containrarnas konfigurationer och filsystem ligger i <code>/lxc</code>. De bind-monterar <code>/bin</code> och <code>/usr</code> (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 <code>/etc/rc</code> i varje container. |
Containrarnas konfigurationer och filsystem ligger i <code>/lxc</code>. De bind-monterar <code>/bin</code> och <code>/usr</code> (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 <code>/etc/rc</code> i varje container. |
||
Notera att vi använder en modifierad variant av Debians init-skript för lxc. Se kommentarer i <code>/etc/init.d/lxc</code> och <code>/usr/local/bin/lxc-halt</code>. |
|||
==== www ==== |
==== www ==== |
||
<code>www</code> har |
<code>www</code> har adressen <code>www.lysator.liu.se</code> och kör Nginx och [[LysCMS]]. <code>/srv/www/main</code> är bind-monterad med skrivrättigheter. <code>/srv/www/projects</code> och <code>/srv/www/users</code> är bind-monterade skrivskyddat. Nginx' konfiguration ligger i <code>/etc/nginx</code> i containern, och loggar till <code>/var/log/nginx</code> (också i containern). Notera att konfigurationsfilen <code>nginx.conf</code> är versionhanterad med RCS och ska redigeras med ditt användarkonto! |
||
==== roxen ==== |
==== roxen ==== |
||
<code>roxen</code> har adressen <code>roxen.lysator.liu.se</code> och kör Roxen. <code>/srv/www/projects</code> och <code>/srv/www/users</code> är bind-monterade med skrivrättigheter (så att Roxen kan skriva access-loggar med User logger-modulen). <code>/home</code> ä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. |
|||
<code>roxen</code> är inte installerad än. |
|||
Roxen är installerad under <code>/opt/roxen</code> i containern och admingränssnittet lyssnar på port 21360. Användarrättigheter sätts till <tt>www:www</tt> permanent när Roxen startar av [http://www.ida.liu.se/~TDDC90/ 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. |
|||
<code>nscd</code> 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 ==== |
|||
<pre> |
|||
lxc-console -n www |
|||
kill `cat /var/run/lyscms.pid` && /etc/rc.lyscms |
|||
</pre> |
|||
=== Nagios-testfall === |
|||
Webservern har flera testfall: |
|||
{| |
|||
| http nginx fcgi || Testar om LysCMS-processen svarar genom att hämta <tt>/</tt> |
|||
|- |
|||
| http nginx file || Testar om Nginx kan serva statiska filer genom att hämta <tt>/robots.txt</tt> |
|||
|- |
|||
| 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 [http://www.webalizer.org/ Webalizer] vars konfiguration ligger i <code>/etc/webalizer/webalizer.conf</code> 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: |
|||
<pre> |
|||
su -c stats_regen www |
|||
</pre> |
|||
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. |
Nuvarande version från 15 november 2019 kl. 17.54
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.