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