Wydrukuj tę dokumentację Pokaż jako slajdy

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

Konifguracja moin.wsgi

# a1) Path of the directory where the MoinMoin code package is located.
#     Needed if you installed with --prefix=PREFIX or you didn't use setup.py.
sys.path.insert(0, '/usr/local/lib/python2.7/site-packages')

# a2) Path of the directory where wikiconfig.py / farmconfig.py is located.
#     See wiki/config/... for some sample config files.
sys.path.insert(0, '/var/www/htdocs/virtuals/intranet.kpkoncept.local')

# scie/zka w przypadku farmwiki
sys.path.insert(0, '/var/www/htdocs/virtuals/kb.bsdserwis.com/config')

Konfiguracja nginx

wiki jako katalog

Poniższa konfiguracja dotyczy wiki jako katalogu. Jest to szczególnie przydatne w przypadku farmy wiki.

    location /fi/ {
        include uwsgi_params;
        uwsgi_pass unix:/var/run/uwsgi/kb.bsdserwis.com.sock;
        uwsgi_modifier1 30;
        uwsgi_param SCRIPT_NAME /fi;
    }

    # konfiguracja dotycząca favicon.ico może być zablokowana - favicon.ico jest "podawane" poprzez <link rel.../>
    # (chyba, że ma być jednak nadpisana)
    #
    include 021-moin-favicon.conf;

    include 021-moin-robots.conf;
    include 021-moin-static.conf;

    include 004-dot-ht.conf;
    include 004-err-page-404.conf;
    include 004-err-page-5xx.conf;
    include 004-pillaging-dvcs.conf;
    include 005-no-logging.conf;
    include 005-x-frame.conf;
    include 014-acmele.conf;

wiki jako root

W przypadku uruchamiania MoinMoin jako root) konfiguracja jest nieco krótsza.

    location / {
        include uwsgi_params;
        uwsgi_pass unix:///var/run/uwsgi/wiki.domena.tld.sock;
        uwsgi_modifier1 30;
    }

    # konfiguracja dotycząca favicon.ico może być zablokowana - favicon.ico jest "podawane" poprzez <link rel.../>
    # (chyba, że ma być jednak nadpisana)
    #
    include 021-moin-favicon.conf;

    include 021-moin-robots.conf;
    include 021-moin-static.conf;

    include 004-dot-ht.conf;
    include 004-err-page-404.conf;
    include 004-err-page-5xx.conf;
    include 004-pillaging-dvcs.conf;
    include 005-no-logging.conf;
    include 005-x-frame.conf;
    include 014-acmele.conf;

Uwagi ogólne

  1. Jakiekolwiek zmiany w plikach konfiguracyjnych wikiconfig.py czy też poszczególnych _wiki_farm.py wymaga wykonania restartu demona uwsgi

  2. Trzeba przyznać, że konfiguracja z wykorzystaniem www/mod_wsgi4 jest zdecydowanie bardziej przejrzysta

Źródła w sieci internet


{i}  (c) 2004 - 2026 BSD Serwis Krzysztof Stryjek. W przypadku błędów, poprawek proszę kontaktować się z administratorem wiki.

MoinModUwsgi (ostatnio edytowane 2018-06-24 20:08:16 przez wtps0n)