Назад | Перейти на главную страницу

В соединении Nginx отказано, ошибка 111, плохой шлюз

Это мой рабочий каталог:

/var/www/flaskapp

myproject.py

from flask import Flask
app = Flask(__name__)

@app.route("/")
def hello():
    return "<h1 style='color:blue'>Hello There!</h1>"

if __name__ == "__main__":
    app.run(host='0.0.0.0')

wsgi.py

from myproject import app

if __name__ == "__main__":
    app.run()

myproject.ini

[uwsgi]
module = wsgi:app

master = true
processes = 5

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

die-on-term = true
#location of log files
logto = /var/log/uwsgi/%n.log

Я также создал файл модуля systemd

/etc/systemd/system/myproject.service

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

[Service]
User = john
Group = www-data
WorkingDirectory=/var/www/flaskapp/
Environment="PATH=/var/www/flaskapp/venv/bin"
ExecStart=/var/www/flaskapp/venv/bin/uwsgi --ini myproject.ini

[Install]
WantedBy=multi-user.target

а потом

sudo systemctl start myproject
sudo systemctl enable myproject

Чем конфигурация nginx. nginx.conf Я оставил без изменений, но внес исправления в / etc / nginx / sites-available / myproject

server {
    listen 83;
    server_name my_external_ip;

    location / {
        include uwsgi_params;
        uwsgi_pass unix:/var/www/flaskapp/venv;
    }
}

а также сделал ссылку на / etc / nginx / sites-enabled командой

sudo ln -s /etc/nginx/sites-available/myproject /etc/nginx/sites-enabled

После этого: sudo systemctl перезапустить nginx и sudo ufw разрешить 'Nginx Full'.

Теперь, когда я вхожу http: // мой_ip_адрес: 83 / Я вижу приветствие nginx по умолчанию и ничего больше! Хотя я думаю, это должен быть мой привет! сделанный моим python-скриптом. Не знаю почему ...

Вот мои логи:

/var/log/nginx/error.log
2018/02/08 22:17:51 [error] 2394#2394: *1 connect() to unix:/var/www/flaskapp/venv failed (111: Connection refused) while connecting to upstream, client: 46.146.0.30, server: 92.240.202.184, request: "GET / HTTP/1.1", upstream: "uwsgi://unix:/var/www/flaskapp/venv:", host: "my_external_ip:83"

И журнал uwsgi:

current working directory: /var/www/flaskapp
detected binary path: /var/www/flaskapp/venv/bin/uwsgi
!!! no internal routing support, rebuild with pcre support !!!
your processes number limit is 7157
your memory page size is 4096 bytes
detected max file descriptor number: 1024
lock engine: pthread robust mutexes
thunder lock: disabled (you can enable it with --thunder-lock)
uwsgi socket 0 bound to UNIX address myproject.sock fd 3
Python version: 3.5.2 (default, Nov 23 2017, 16:37:01)  [GCC 5.4.0 20160609]
*** Python threads support is disabled. You can enable it with --enable-threads ***
Python main interpreter initialized at 0xf07550
your server socket listen backlog is limited to 100 connections
your mercy for graceful operations on workers is 60 seconds
mapped 436560 bytes (426 KB) for 5 cores
*** Operational MODE: preforking ***
WSGI app 0 (mountpoint='') ready in 2 seconds on interpreter 0xf07550 pid: 2320 (default app)
*** uWSGI is running in multiple interpreter mode ***
spawned uWSGI master process (pid: 2320)
spawned uWSGI worker 1 (pid: 2703, cores: 1)
spawned uWSGI worker 2 (pid: 2704, cores: 1)
spawned uWSGI worker 3 (pid: 2705, cores: 1)
spawned uWSGI worker 4 (pid: 2706, cores: 1)
spawned uWSGI worker 5 (pid: 2707, cores: 1)

Где-то было сказано, что мне нужно переустановить uwsgi, а также установить pcre, но после этого все еще безуспешно, я действительно пробовал и искал все решения, связанные с этим, но со всеми усилиями я ничего не получил ..

Пожалуйста, помогите мне обнаружить проблему, а затем решить ее.

При использовании сокета UNIX путь, указанный в uwsgi_pass должен быть путем к фактическому сокету UWSGI.

То есть:

[uwsgi]
socket = /path/to/uwsgi.sock

Должен соответствовать в nginx:

uwsgi_pass unix:/path/to/uwsgi.sock