Возникли проблемы с подключением Django + uWSGI + NGINX
Если я запускаю сервер разработки Django, страница работает отлично.
Если я запускаю: uwsgi --http 0.0.0.0:8134 --wsgi-file /test/test_project/wsgi.py и получаю доступ к нему по адресу localhost: 8134, сайт работает, за исключением того, что изображения не загружаются.
Но если я захожу на сайт по адресу localhost: 80 (предположительно для обработки nginx), я получаю сообщение об ошибке в журнале ошибок nginx (ниже приведен запрос ОДНОЙ страницы, поэтому не уверен, почему он выглядит как два):
2018/07/15 11:55:34 [error] 20986#20986: *1 connect() to unix:/test
/test_project/test.sock failed (111: Connection refused) while
connecting to upstream, client: 127.0.0.1, server: 127.0.0.1,
request: "GET / HTTP/1.1", upstream: "uwsgi://unix:/test/test_project
/test.sock:", host: "localhost"
2018/07/15 11:55:34 [error] 20986#20986: *1 connect() to unix:/test
/test_project/test.sock failed (111: Connection refused) while
connecting to upstream, client: 127.0.0.1, server: 127.0.0.1,
request: "GET /favicon.ico HTTP/1.1", upstream: "uwsgi://unix:
/test/test_project/test.sock:", host: "localhost", referrer:
"http://localhost/"
Я убедился, что запустил sudo service nginx reload и sudo service nginx restart.
Основной вопрос:
1. Почему я не могу получить доступ к сайту через localhost: 80. Я предполагаю, что это связано с тем, что файл сокета отказывается от соединений; файл сокета пуст и был создан с помощью 'uwsgi --ini test_uwsgi.ini'. Есть ли что-то с inetd / xinetd, что мне нужно проверить?
Дополнительные вопросы (может потребоваться отдельный пост):
1. Не уверен, что с конфигурацией что-то не так, или я вообще правильно ее использую. Должен ли я запускать «sudo service nginx start» И запускать «uwsgi --http 0.0.0.0:8134 --wsgi-file /test/test_project/wsgi.py»? Я предполагаю, что да, если я каким-то образом не автоматизирую команду uwsgi через nginx.
2. Должен ли каждый сценарий, изображение и файл конфигурации принадлежать www-data?
3. Доступна ли папка со статическими изображениями для uwsgi и nginx (на основе конфигураций ниже)? Как убедиться?
4. У меня были проблемы с передачей файлов cookie, поэтому, если что-то в конфигурации препятствует этому, сообщите мне.
Вот установка:
/test/test_project/test.sock разрешения:
srwxrwxrwx 1 www-data www-data 0 Jul 14 22:51 test.sock
*Obviously I'll want to tighten this up, but for troubleshooting purposes permissions are open wide.
/test/test_project/test_uwsgi.ini:
[uwsgi]
chdir = /test/test_project
module = test.wsgi
pythonpath = /usr/bin/python2
# process-related settings
master = true
processes = 8
socket = /test/test_project/test.sock
chmod-socket = 666
max-requests = 50000
/test/test_project/uwsgi.py:
def application_backup(environ, start_response):
start_response('200 OK', [('Content-Type', 'text/html')])
вернуть view.index (среда, start_response)
custom_nginx.conf:
upstream django {
server unix:/test/test_project/test.sock;
# Also tried unix:///test/test_project/test.sock;
}
server {
listen 80;
server_name 127.0.0.1;
charset utf-8;
client_max_body_size 1024M;
location /static {
alias /test/test_project/static;
}
location /media {
alias /test/test_project/media;
}
location / {
uwsgi_pass django;
include uwsgi_params;
}
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log warn;
}