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

Базовая конфигурация NGINX, uWSGI, работающая локально, обеспечивает только 404

Мое приложение Flask работает через uWSGI, и я использую TCP-сокет для связи с NGINX. Конфигурация очень проста:

application.conf

server {
    listen 80 default_server;

    location / {
        uwsgi_pass 127.0.0.1:9000;
        include uwsgi_params;
    }
}

Я указываю сокет TCP в моем .ini:

uwsgi.ini

[uwsgi]
socket = 127.0.0.1:9000

# remove the socket once disconnected
vacuum = true

module = wsgi
callable = app
processes = 4
threads = 2
master = 1

И мой модуль:

wsgi.py

from app import create_app

app = create_app('config/development.py')

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

127.0.0.1:80/ возвращает только ошибки 404 (и ошибки NGINX 502, когда uWSGI не запущен).

Как я могу заставить uWSGI и NGINX общаться друг с другом? Как uWSGI может обслуживать приложение Flask через NGINX?

Я решил проблему, изменив конфигурацию Flask, указав сервер:

config / development.py

...
SERVER_NAME = 'applicationlocal'

а затем указал этот сервер в конфигурации NGINX:

application.conf

location / {
     listen 80;
     server_name applicationlocal;
}

Я ранее редактировал файл хоста OS X, чтобы он соответствовал 127.0.0.1 "applicationlocal"; теперь я могу получить доступ к приложению по адресу «applicationlocal: 80 /», но не «127.0.0.1:80/».