Я приведу пример настройки в командной строке. Все эти параметры можно разместить в конфигурационных файлах самого разного формата и даже в базах данных. uWSGI фантастически всеядна.
Конечно, это пример, вам следует указать свои пути и выбрать значения параметров, подходящие для вашей системы.
env -i LANG=C TZ='Europe/Moscow' /usr/sbin/uwsgi \
--log-format '%(addr) - %(user) [%(ltime)] [%(micros)] %(host) "%(method) %(uri) %(proto)" %(status) %(size) "%(referer)" "%(uagent)"' \
--env 'DJANGO_SETTINGS_MODULE=root_settings' \
--env "DJANGO_VDS_ROOT=$BASE" \
--pythonpath "$BASE/site" \
--chdir "/tmp" \
--module 'django.core.handlers.wsgi:WSGIHandler()' \
--socket '127.0.0.1:18009' \
--stats '127.0.0.1:18019' \
--harakiri 5 \
--vacuum \
--processes 2 \
--log-reopen \
--cgi "$BASE/site" \
--master \
--pidfile "$PIDFILE" \
--daemonize "$LOGFILE"
Немного пояснений.
Во-первых мы запускаем uWSGI через env -i, что позволяет
вынести из переменных окружения всё ненужное.
Далее идёт параметры.
Мы задали
virtualenv считаю чрезмерным; тут
достаточно просто указать путь)--chdir — имеет смысл сменить рабочий каталог на какой-нибудь
нейтральный это даёт массу мелких преимуществ от безопасности до
возможности размонтирования файловых систем, не останавливая процесс,telnet или netcat),harakiri означает, что если процесс не отвечает заданное
количество секунд, то он перезапускается автоматически,vacuum чистит всё при завершении процесса (удаляет PID-файлы и прочее),log-reopen — переоткрывать файлы, если они проротейтилисьcgi — путь к CGI-скриптамКак настроить nginx для связи с uWSGI, я писал раньше.