Konfiguracja MoinMoin z wykorzystaniem uWSGi

Poniższa konfiguracja zapewnia poprawną pracę MoinMoin w oparciu o uwsgi.

Instalacja uwsgi

Z wykorzystaniem własnego repozytorium pakietów należy zainstalować uWSGI:

pkg install -Uy uwsgi

Przygotowanie katalogów

W celu uruchomienia serwera uWSGI należy przygotować katalogi:

mkdir -p /var/log/uwsgi /var/run/uwsgi/
touch /var/log/uwsgi/uwsgi.log
chown uwsgi:www /var/run/uwsgi/
chown -R uwsgi:uwsgi /var/log/uwsgi

rc.conf

Za pomocą własnego repozytorium konfiguracji można zainstalować konfirugację startową (w szczególności w przypadku jails). Albo też w pliku /etc/rc.conf wykonać następującą konfigurację:

uwsgi_enable="YES"
uwsgi_logfile="/var/log/uwsgi/uwsgi.log"
uwsgi_pidfile="/var/run/uwsgi/uwsgi.pid"
uwsgi_emperor="YES"
uwsgi_socket="/var/run/uwsgi/uwsgi.sock"
uwsgi_socket_mode="660"
uwsgi_socket_owner="uwsgi:www"
uwsgi_configfile="/usr/local/etc/uwsgi/uwsgi.ini"
uwsgi_vassals_dir="/usr/local/etc/uwsgi/vassals"
uwsgi_flags="-L --ini ${uwsgi_configfile}"

uwsgi.ini

Pojedyncza aplikacja

Jeżeli uWSGI ma uruchomić pojedynczą aplikację, to wtedy wszystko zapisujemy w pliku uwsgi.ini:

[uwsgi]
uid = www
gid = www
socket = /var/run/uwsgi/uwsgi.sock
chmod-socket = 660
logto = /var/log/uwsgi/uwsgi.log

chdir = /var/www/htdocs/virtuals/kb.bsdserwis.com/
wsgi-file = bin/moin.wsgi

master
workers = 3
max-requests = 200
harakiri = 30
die-on-term

Wiele aplikacji

[uwsgi]
emperor = /usr/local/etc/uwsgi/vassals
logto = /var/log/uwsgi/uwsgi.log

/!\ Bardzo ważne!!! /!\ Poniższa konfiguracja:

master
workers = 2
max-requests = 200
harakiri = 30
die-on-term

musi się znaleźć w konfiguracji każdej z aplikacji. W przeciwnym przypadku w systemie "mnożą się" procesy uwsgi i mogą doprowadzić do zapaści serwera.

wiki uruchamiane jako katalog

[uwsgi]
uid = www
gid = www
socket = /var/run/uwsgi/kb.bsdserwis.com.sock
chmod-socket = 660
;;logto = /var/log/uwsgi/uwsgi.log

chdir = /var/www/htdocs/virtuals/kb.bsdserwis.com/
wsgi-file = bin/moin.wsgi

master
workers = 2
max-requests = 200
harakiri = 30
die-on-term

wiki uruchamiane jako root

[uwsgi]
uid = www
gid = www
socket = /var/run/uwsgi/wiki.domena.tld.sock
chmod-socket = 660
;;logto = /var/log/uwsgi/uwsgi.log

chdir = /var/www/htdocs/virtuals/intranet.domena.tld
wsgi-file = moin.wsgi

master
workers = 1
max-requests = 200
harakiri = 30
die-on-term

Uruchomienie usługi

service uwsgi start