На mydomain.com Nginx обслуживает stati c page index. html, что я и хочу. На mydomain.com/app я хочу, чтобы он обслуживал приложение Flask через gunicorn. Это не удается. В ответ на различные конфигурации, которые я пробовал, я получаю либо плохой шлюз, либо 404. Ниже приведена конфигурация, которая мне кажется наиболее разумной и возвращает 404 Not Found. Я подозреваю, что где-то мои каталоги не выстраиваются должным образом. Укажите, где я ошибся.
Мой индекс. html находится в / var / www/html.
My flask app api_app.py, коннектор файла коннектора. py и api_app.sock находятся в / var / www/app.
Маршрут приложения flask - это @ app.route ('/ app').
Рабочий каталог systemd api_app.service is / var / www/app.
Nginx mydomain.com config location '/' has root / var / www/html;
Nginx mydomain.com config location / app имеет proxy_pass http://unix: / var / www/app/api_app.sock;
/ etc / systemd / system / api_app.service:
[Unit]
Description=Gunicorn instance to serve One
After=network.target
[Service]
User=root
Group=www-data
WorkingDirectory=/var/www/app
Environment="PATH=/home/user/anaconda3/envs/appserver/bin"
ExecStart=/home/user/anaconda3/envs/appserver/bin/gunicorn --workers 3 --bind unix:api_app.sock -m 007 connector:app
[Install]
WantedBy=multi-user.target
/ etc / nginx / sites-enabled / mydomain.com :
server {
location / {
root /var/www/html;
}
location /app {
include proxy_params;
proxy_pass http://unix:/var/www/app/api_app.sock;
}
}
/ var / www/app/api_app.py:
from flask import Flask
app = Flask(__name__)
@app.route("/app")
def hello_world():
return "Hello World"
if __name__ == "__main__":
app.run(host='0.0.0.0')
Здесь много похожих вопросов, но все они, похоже, связаны с использованием Flask для обслуживания состояния c страница, и это кажется немного не идеальным. В самом деле, собственное руководство Flask гласит: «В идеале ваш веб-сервер настроен на обслуживание [stati c content] для вас ...» Они также, похоже, запускают свое приложение в местоположении '/' и stati c контент в другом месте, тогда как я хочу наоборот. Помощь будет очень признательна!