Мое приложение 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/».