uWSGI

Vi bruker uWSGI som WSGI-implementasjon for å kjøre diverse Python-baserte nettsider.

Ettersom init.d-scriptet som følger med uWSGIs Debian-pakke spiser opp mye output som er nyttig for debugging, i tillegg til at det er dårlig dokumentert, bruker vi et skreddersydd uWSGI-oppsett basert på et eksempel i uWSGI-dokumentasjonen. Dette oppsettet bruker en systemd-unit-template til å lage en systemd-tjeneste per instans.

uWSGI bruker to konfigurasjonsfiler per instans; den ene, /etc/uwsgi/default.ini, brukes for å forhindre at unødvendig output logges til syslog (f. eks HTTP-forespørsler). I tillegg brukes en instansspesifikk konfigurasjonsfil. Disse konfigurasjonsfilene ligger i /etc/uwsgi/apps-available. Dersom en uWSGI-instans skal aktiveres, må konfigurasjonsfilen i /etc/uwsgi/apps-available symlenkes til /etc/uwsgi/apps-enabled.custom.

Hvordan opprette en ny instans

Opprett først en ny konfigurasjonsfil i /etc/uwsgi/apps-available, for så å symlenke den til /etc/uwsgi/apps-enabled.custom. Husk å sette rett «plugin» og å velge en unik port. Deretter må systemd-tjenesten aktiveres:

 sudo systemctl enable uwsgi-custom@<navn på uWSGI-konfigfil uten .ini>.service 

Tjenesten kan så startes ved å kjøre

 sudo systemctl start uwsgi-custom@<navn på uWSGI-konfigfil uten .ini>.service 

Instansen kan deretter f.eks. startes på nytt ved å kjøre

sudo systemctl restart uwsgi-custom@<navn på uWSGI-konfigfil uten .ini>.service 

Hvordan slette en gammel instans

Først må tjenesten stoppes:

 sudo systemctl stop uwsgi-custom@<navn på uWSGI-konfigfil uten .ini>.service 

Deretter kan den deaktiveres:

 sudo systemctl disable uwsgi-custom@<navn på uWSGI-konfigfil uten .ini>.service 

Feilsøking

Dersom instansen ikke starter, vil feilmeldinger bli håndtert av systemd og kan dermed leses ved hjelp av journalctl eller systemctl.

Etter at instansen har startet, vil alt (inkludert stderr og stdout) logges i /var/log/uwsgi/app/<navn på uWSGI-konfigfil uten .ini>.log, eller /var/log/uwsgi/app/default.log dersom «logto» ikke er spesifisert.

Lenker: Start, uka-no, hvordan utvikle

Mail: itk@samfundet.no | Telefon: 992 15 925 | Sist endret: 2018-04-24 12:53 | Revisjon: 3 (historie, blame) | Totalt: 1419 kB | Rediger