nginx+flask+gunicorn+supervisor. Развертывание приложения. 18.04.1-Ubuntu

Пытаюсь развернуть небольшое приложение на Flask с использованием nginx и gunicorn, но когда запускаю nginx и обращаюсь к домену, то меня постоянно редиректит на default_server. Я сделал вывод, что nginx не видит мое приложение, скорее всего из-за неправильной конфигурации.

Вот структура проекта:

├── deploy/
├── gunicorn.conf.py
├── logs/
├── main.py
├── Makefile
├── __pycache__/
├── setup.cfg
├── templates/
├── venv_proxy/
└── wsgi.py

Прилагаю файлы:

  1. gunicorn.conf.py:
workers = 4
worker_class = 'sync'
max_requests = 50
max_requests_jitter = 10
loglevel = 'debug'
accesslog = 'logs/access.log'
errorlog = 'logs/error.log'
access_log_format = '%(h)s %(l)s %(u)s %(t)s "%(r)s" %(s)s %(b)s "%(f)s" "%(a)s"'
  1. *.supevisor.conf:
[program:custom_proxy]
command=/var/www/custom-proxy/venv_proxy/bin/gunicorn --config /var/www/custom-proxy/gunicorn.conf.py wsgi:app
user=<user>
directory=/var/www/custom-proxy
autostart=true
autorestart=true
redirect_stderr=true
stopsignal=QUIT

3.wsgi.py:

from main import app

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

  1. В файле main.py всего два роута:
@app.route('/<path:url>')
def root(url):
    pass

@app.route('/p/<path:url>', methods=['POST', 'GET'])
def proxy(url):
    pass

  1. nginx:
upstream custom-proxy {
    server unix:/tmp/custom-proxy.sock;
   }
 
server {
     listen  *:80;
 
     server_name <domain>;
 

     access_log /var/log/nginx/custom_proxy.access.log;
     error_log /var/log/nginx/custom_proxy.error.log;
 
     location / {
         include proxy_params;
         proxy_pass http://custom-proxy;
    }
}

Вот что я делал:

  1. Запустил супервизор.
  2. Сделал curl до сокета: curl --unix-socket /tmp/custom-proxy.sock localhost/p/ Когда я так делал, то получал ответ от сокета. Поэтому думаю, что сокет рабочий, на запросы отвечает.
  3. Потом запустил nginx и сделал проксирование на этот сокет. При попытке перейти на назначенный domain, происходит перенаправление на default_server.
  4. С помощью команды sudo nginx -T увидел, что мой конфиг включился в основной.
  5. Просмотрел /var/log/nginx/error.log и ошибок по этому конфигу не обнаружил.
  6. В логе супервизора, тоже все хорошо.

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