Я следовал простому руководству и пытался показать свое фляжное приложение, но оно не отображается. Я запускаю все через 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)
Что мне здесь не хватает, как заставить это работать?
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
в браузере введите http://<ваш_ip>/
Я изменил это, и оно работает нормально, с проверкой статуса, но как мне получить доступ к приложению? посмотреть?