Развертывание приложения flask + gunicorn + nginx на сервере

Пытаюсь развернуть скрипт для автодеплоя моего приложения через Github Webhooks, но никак не получается, его не видно "извне". Само приложение, для которого я делаю этот автодеплой развернуто в докере и работает, деплоер я хочу развернуть без докера.

Код app.py

import logging
import hashlib
import hmac
import subprocess
import threading
import traceback

from flask import Flask, request, abort
from dotenv import dotenv_values

logging.basicConfig(
    format='%(levelname)s: %(asctime)s %(message)s', level=logging.DEBUG,
    filename='logs.log', encoding='utf-8'
)

env_values = dotenv_values('.env')

app = Flask(__name__)


@app.route('/github-webhook', methods=['POST'])
def github_webhook():
    # Some code
    ...


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

Сервис для запуска gunicorn

[Unit]
Description=Simple App Deployer
After=network.target

[Service]
WorkingDirectory=/root/apps/simple-deployer
Environment="PATH=/root/.local/share/virtualenvs/simple-deployer-qILX_TkP/bin"
ExecStart=/bin/bash /root/apps/simple-deployer/service.sh

[Install]
WantedBy=multi-user.target

Он стартует баш скрипт, который просто запускает gunicorn

#!/bin/bash

gunicorn -w 1 -b 0.0.0.0:9000 --capture-output --log-level debug 
    --access-logfile /root/apps/simple-deployer/access.log 
    --error-logfile /root/apps/simple-deployer/errors.log app:app

Сервис стартует, локально "досягаем" и работает

Проверял через curl -X POST 127.0.0.1:9000/github-webhook - ответ есть

Конфиг nginx лежит в /etc/nginx/conf.d/

server {

    listen 80;

    access_log /var/log/nginx/deployer.access.log;
    error_log /var/log/nginx/deployer.error.log;
    
    location / {
        proxy_set_header Host $http_host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_pass http://127.0.0.1:9000;
    }
}

nginx -t проходит

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Итог

У меня нет идей, в чем может быть проблема. Особо опыта в развертывании нет, поэтому не ясно, куда смотреть и что проверять

UPD:

Как оказалось, я обращался к серверу через порт: http://url:9000/, а приложение развернулось, конечно же, на 80 порту и доступ к нему есть напрямую через http://url/. Есть варианты сделать так, чтобы доступ был через порт 9000?


Ответы (0 шт):