Приложение Flask с Gunicorn на сервере Nginx Ошибка на POST - PullRequest
0 голосов
/ 30 мая 2018

Я новичок в Python.Я разместил приложение Flask, которое будет принимать запрос POST с Gunicorn на сервере Nginx на экземпляре EC2.

При публикации на маршруте я получаю сообщение об ошибке:

1578#0: *14 upstream prematurely closed connection while reading response header from upstream, client: myip, server: serverip, request: "POST /train HTTP/1.1", upstream: "http://unix:/home/ec2-user/myproject/myproject.sock:/save_data", host: "serverip"

Запрос POST не принадлежит тому же домену и всегда будет поступать из другого домена.Нужно ли что-то добавить в мой файл nginx.conf?

Все работает нормально, когда я запускаю приложение с помощью команды python app.py

1 Ответ

0 голосов
/ 31 мая 2018

Мне удалось решить эту проблему.Это не было связано с моей конфигурацией NGINX (которую я изначально считал причиной).

Проблема заключалась в моем файле конфигурации Gunicorn.

В моем файле конфигурации Gunicorn (/etc/systemd/system/myproject.service)Я добавил следующее в мою ExecStart строку:

--timeout 600

Файл теперь выглядит так:

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

[Service]
User=harrison
Group=www-data
WorkingDirectory=/home/harrison/myproject
Environment="PATH=/home/harrison/myproject/myprojectenv/bin"
ExecStart=/home/harrison/myproject/myprojectenv/bin/gunicorn --workers 3 --timeout 600 --bind unix:myproject.sock -m 007 wsgi:application

[Install]
WantedBy=multi-user.target

Кроме того, причина, по которой вы делаетеПри запуске приложения с использованием python app.py проблема не возникает из-за того, что Gunicorn не обслуживает его таким образом ... он использует тестовый сервер разработки Flask.Сервер разработки не имеет такой же длительности тайм-аута, как Gunicorn.По умолчанию я считаю, что время ожидания Gunicorn по умолчанию составляет 30 секунд.В моем случае это было слишком мало.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...