Ошибка 502 с Nginx и Uwsgi, сокет не найден - PullRequest
0 голосов
/ 03 июня 2018

Я следовал этому руководству о том, как настроить Nginx и Uwsgi для капли Ubuntu, чтобы она была обращена к Интернету.Я сделал все необходимые настройки;запуск команды uwsgi --socket 0.0.0.0:5000 --protocol=http -w wsgi:app из терминала работает нормально.Это приводит к тому, что мой сайт обслуживается на правильном доменном имени, на порту 5000 (http://who.would.win:5000). Это не идеально, поэтому я пытаюсь установить его на A), если он отключен, без необходимостизапустите команду вручную и B), чтобы в конце не требовался порт 5000.

Я следовал остальной части учебника и не смог заставить его работать должным образом.Исходный код приложения Python, который работает просто отлично, здесь .Он уходит из моей ветки.

/ home / whowouldwin / myproject / myproject.ini

[uwsgi]
module = wsgi:app

logto = /var/log/uwsgi/%n.log

master = true
processes = 5

socket = myproject.sock
chmod-socket = 660
vacuum = true

die-on-term = true

/ etc / systemd / system / myproject.service

[Unit]
Description=uWSGI instance to serve myproject
After=network.target

[Service]
User=whowouldwin
Group=www-data
WorkingDirectory=/home/whowouldwin/myproject
Environment="PATH=/home/whowouldwin/myproject/myprojectenv/bin"
ExecStart=/home/whowouldwin/myproject/myprojectenv/bin/uwsgi --ini myproject.ini

[Install]
WantedBy=multi-user.target

/ etc / nginx / sites-available / myproject

server {
    listen 80;
    server_name 159.89.137.109;

    location / {
        include uwsgi_params;
        uwsgi_pass unix:///home/whowouldwin/myproject/myproject.sock;
    }
}

Я пытаюсь прокси-сервер мой оригинальный IP-адрес, 159,89.137.109, на доменное имя http://who.would.win. При посещении IP-адреса как есть, я получаю следующую ошибку в /var/log/nginx/error.log.Также в браузере отображается ошибка 502 Bad Gateway.

2018/06/03 01:32:55 [crit] 12288 # 12288: * 7 connect () для unix: /// home/whowouldwin/myproject/myproject.sock не удалось (2: нет такого файла или каталога) при подключении к апстрим, клиент: XXXXXX, сервер: 159.89.137.109, запрос: «GET / HTTP / 1.1», апстрим: «uwsgi: //unix: ///home/whowouldwin/myproject/myproject.sock: ", host:" 159.89.137.109 "

Я не получаю эту ошибку при доступе к ней через http://who.would.win. Вместо этого отображается общее «Добро пожаловать в Ngnix!»страница, без ошибок, хотя представления регистрируются в /var/log/nginx/access.log как 200.

1 Ответ

0 голосов
/ 03 июня 2018

Существуют (как минимум) две проблемы с вашей текущей конфигурацией:

1) В вашей конфигурации nginx вы задали server_name 159.89.137.109;, поэтому nginx будет обслуживать ваш сайт только при обращении к нему http://159.89.137.109.Изменение на server_name who.would.win должно адресовать это (или сделать его записью сервера по умолчанию, см. /etc/nginx/sites-enabled/default)

2) В вашем файле uwsgi ini, попробуйте установить путь к сокету как абсолютный путь, что-то вроде socket = /home/whowouldwin/myproject/myproject.sock

...