Я дуже заплутався. Я використовував ті ж налаштування протягом багатьох років, і вони працювали чудово ... до сьогоднішнього дня.
Налаштування: Django на Gunicorn з NGINX на Digitalocean Python 3
У будь-який час, коли я переходжу до URL, вона виглядає як помилка 500спрацьовує, а потім відображається шаблон 500.html. Але це відбувається незалежно від параметрів Debug. Крім того, до помилок Gunicorn нічого не написано. Єдина помилка, яку я отримую, це 404 в каталозі шаблонів.
Як перевірка розумності, ось деякі зразкові конфігурації, які я використовую.
Місцезнаходження NGINX:
root /home/myname/myrepoproject;
error_page 500 502 503 504 /500.html;
location = /500.html {
root /home/myname/myrepoproject/myproject/app/templates;
}
Помилка NGINX:
2018/03/26 17:09:14 [crit] 3267#3267: *35 connect() to unix:/home/myname/myproject/myproject.sock failed (2: No such file or directory) while connecting to upstream, client: XXX.XXX.XXX.XXX, server: ZZZ.ZZZ.ZZZ.ZZZ, request: "GET /500.html/ HTTP/1.1", upstream: "http://unix:/home/myname/myproject/myproject.sock:/500.html/", host: "arecord.domain.name"
Gunicorn ExecStart:
ExecStart=/home/myname/.virtualenvs/myve/bin/gunicorn --error-logfile ~/logs/gunicorn/gunicorn-errors.log --workers 3 --bind unix:/home/myname/myve/myproject.sock production
Статичні та завантажувальні каталоги працюють.
Будь-які ідеї щодо усунення несправностей вітаються.
Відповіді:
0 для відповіді № 1З помилок, які ви опублікували, схоже, що ваші конфіги nginx і gunicorn не мають однакового набору розташування сокету, тому вони не можуть спілкуватися.
Nginx дивиться unix:/home/myname/myproject/myproject.sock
але ваш командний рядок gunicorn говорить --bind unix:/home/myname/myve/myproject.sock
.
Зробіть їх відповідними і вони повинні працювати.