Я развернул приложение Django, следуя этому руководство.
Я побежал uwsgi --emperor /etc/uwsgi/vassals --uid nginx --gid nginx --daemonize /var/log/uwsgi-emperor.log
и сайт работал нормально.
Но через 3-5 минут я получил 502 Bad Gateway Error. Понятия не имею, как это произошло, так как я впервые развертываю приложение с использованием UWSGI и Nginx.
Вот мой журнал ошибок nginx:
2019/11/28 17:42:15 [error] 6907#6907: *26 connect() to unix:///var/www/api.kitab.or.id/lai_project.sock failed (111: Connection refused) while connecting to upstream, client: 36.71.210.205, server: api.kitab.or.id, request: "POST /v1/register.json HTTP/1.1", upstream: "uwsgi://unix:///var/www/api.kitab.or.id/lai_project.sock:", host: "api.kitab.or.id"
Там написано «соединение отклонено», но почему через ~ 3 минуты? Предыдущие запросы обрабатывались сервером нормально.
Последние строки из моего журнала uwsgi-emperor.log:
[uWSGI] getting INI configuration from lai_project_uwsgi.ini
Thu Nov 28 17:45:01 2019 - [emperor] curse the uwsgi instance lai_project_uwsgi.ini (pid: 8677)
Thu Nov 28 17:45:01 2019 - [emperor] removed uwsgi instance lai_project_uwsgi.ini
Файл .ini моего проекта uwsgi:
[uwsgi]
# Django-related settings
# the base directory (full path)
chdir = /var/www/api.kitab.or.id
# Django's wsgi file
module = lai_project.wsgi
# the virtualenv (full path), i.e., "main"
home = /home/username/Envs/main
# process-related settings
# master
master = true
# maximum number of worker processes
processes = 10
# the socket (use the full path to be safe
socket = /var/www/api.kitab.or.id/lai_project.sock
# ... with appropriate permissions - may be needed
chmod-socket = 666
# clear environment on exit (true)
vacuum = true
env = DJANGO_SETTINGS_MODULE=lai_project.settings
safe-pidfile = /tmp/lai-master.pid
# create a pidfile
harakiri = 20
#limit-as = 128 # limit the project to 128 MB
max-requests = 5000
daemonize = /var/log/uwsgi/lai.log
Каталог проекта Django принадлежит myusername:nginx
и разрешение 775.