====== Debian 11 + uWSGI ======
==== Ставим uWSGI из пакетов ====
apt install uwsgi uwsgi-plugin-python3
==== Компилируем uWSGI из pip2.7 ====
apt install curl -y
curl https://bootstrap.pypa.io/pip/2.7/get-pip.py --output get-pip.py
python2 get-pip.py
pip2.7 install uwsgi
[uwsgi]
uid = www-data
gid = www-data
pidfile = /run/uwsgi/uwsgi.pid
emperor = /etc/uwsgi/apps-enabled
stats = /run/uwsgi/stats.sock
chmod-socket = 660
emperor-tyrant = true #только для множества пользователей (у меня true не работает)
cap = setgid,setuid
plugin = python39,logfile
Права на папку в run
d /run/uwsgi 0775 www-data www-data
[Unit]
Description=uWSGI Emperor
After=syslog.target
[Service]
ExecStart=/usr/bin/uwsgi --ini /etc/uwsgi/uwsgi.ini
#или так ExecStart=/usr/local/bin/uwsgi --ini /etc/uwsgi/uwsgi.ini
# не нужно, иначе папка /run/uwsgi будет создана с правами root
#RuntimeDirectory=uwsgi
Restart=always
KillSignal=SIGQUIT
Type=notify
StandardError=syslog
NotifyAccess=all
[Install]
WantedBy=multi-user.target
Для логов организуем папку c подходящими правами
mkdir /var/log/uwsgi
chown www-data:root /var/log/uwsgi
chmod 770 /var/log/uwsgi
Ротация логов с помощью logrotate. По умолчанию логи хранятся в /var/log/uwsgi/app. Мы делаем без /app
"/var/log/uwsgi/*log" {
missingok
notifempty
sharedscripts
delaycompress
postrotate
/bin/systemctl reload uwsgi.service > /dev/null 2>/dev/null || true
endscript
}
Папка для конфигов: /etc/uwsgi/apps-enabled