Попытка настроить flask с nginx и gunicorn

Я следовал простому руководству и пытался показать свое фляжное приложение, но оно не отображается. Я запускаю все через ssh на сервере ubuntu.

Имейте мое приложение для фляг и wsgi.py в /var/www/application/

Моя конфигурация nginx:

server {
        listen 80;
        server_name application;
 
        access_log /var/log/nginx/application.access.log;
        error_log /var/log/nginx/appliation.error.log;
 
        location / {
                include proxy_params;
                proxy_pass http://unix:/var/www/application/application.sock;
        }
}

Я сделал символическую ссылку на файл /etc/nginx/sites-enabled/

Тогда вот моя конфигурация приложения gunicorn находится в: /etc/systemd/system/application.service

[Unit]
Description=application.service - A Flask application run with Gunicorn.
After=network.target
 
[Service]
User=www-data
Group=www-data
WorkingDirectory=/var/www/application/
ExecStart=/usr/bin/gunicorn --workers 3 --bind unix:/var/www/application.sock wsgi:app
 
[Install]
WantedBy=multi-user.target

Проверил, все процессы запущены, и состояние systemd в порядке, но когда я пытаюсь свернуть

http://application

Я ничего не получаю?

Мое приложение.py

from flask import Flask
 
app = Flask(__name__)
@app.route("/")
def home():
    return "<h1>Nginx & Gunicorn</h1>"

wsgi.py

from main import app
 
if __name__ == "__main__":
    app.run(debug=True)

Что мне здесь не хватает, как заставить это работать?

Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
1
0
20
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий
ExecStart=/usr/bin/gunicorn --workers 3 --bind unix:/var/www/application.sock wsgi:app

проблема в пути /var/www/application.sock, должно быть: /var/www/application/application.sock

Вы все еще можете просмотреть статус службы с помощью команды: sudo systemctl status <service_name>

Чтобы понять, верна ли команда, указанная в служебном файле, или у приложения проблемы с запуском, попробуйте запустить его прямо из командной строки:

cd /var/www/application/ && /usr/bin/gunicorn --workers 3 --bind unix:/var/www/application/application.sock wsgi:app

Я изменил это, и оно работает нормально, с проверкой статуса, но как мне получить доступ к приложению? посмотреть?

MerrinX 07.05.2022 12:41

в браузере введите http://<ваш_ip>/

Matteo Pasini 07.05.2022 12:42

Другие вопросы по теме