Я создал приложение flask. Я пытаюсь развернуть его на сервере Production with WSGI Gunicorn и обратном прокси Nginx в Centos 7. Ниже приведен рабочий каталог моего проекта.
projet
|--templates
|--static
|---app.py
|---wsgi.py
И здесь я использую виртуальную среду " my_app». Когда я иду в рабочую папку проекта и запускаю приложение по gunicorn wsgi:app
, я могу увидеть результаты на веб-странице. Но когда я закрываю систему, я получаю 502 Bad GateWay
. Это означает, что каждый раз, когда мне нужно вручную запустить команду gunicorn, чтобы увидеть результаты на веб-странице. Но я хочу запустить его автоматически. Для этого я создаю служебный файл с помощью systemd. Ниже приведены файлы конфигурации для Nginx и Gunicorn.
В /etc/nginx/sites-enabled/flaskapp.conf
server{
listen 80;
server_name xxxx.xxx.xx.xx;
access_log /var/log/nginx/error.log;
uwsgi_read_timeout 120;
location = /favicon.ico { access_log off; log_not_found off; }
location / {
proxy_pass http://unix://home/centos/Python-3.6.4/my_flask_app/pre_owned_model/evaluation_calculator/gunicorn.sock;
#proxy_pass http://127.0.0.1:8000;
}
}
В / etc / systemd / system / gunicorn.service
[Unit]
Description=gunicorn daemon
Requires=gunicorn.socket
After=network.target
[Service]
Type=simple
User=centos
Group=centos
RuntimeDirectory=gunicorn
WorkingDirectory=/home/centos/Python-3.6.4/my_flask_app/pre_owned_model/evaluation_calculator
ExecStart=/home/centos/Python-3.6.4/my_flask_app/my_app/bin/gunicorn --workers 3 --bind unix:/home/centos/Python-3.6.4/my_flask_app/pre_owned_model/evaluation_calculator/gunicorn.sock -m 007 wsgi:app
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s TERM $MAINPID
TimeoutStopSec=3
PrivateTmp=true
Restart=always
[Install]
WantedBy=multi-user.target
Однако я не получаю результатов того, чего ожидаю. Каждый раз я получаю 502 Bad Gateway
даже после создания сервиса. Может кто-нибудь объяснить, как я могу этого достичь.
Любая помощь будет принята с благодарностью. Спасибо.