@Vaskey

Как устранить ошибка 404 после / в связке nginx-wsgi-flask?

Не могу понять в чем ошибка:

Запустил согласно инструкции

При переходе на "/" все нормально, но при переходе "/hello" - nginx выдает ошибку - 404

Содержимое NGINX
server {
        listen 80;
        listen [::]:80;

        root /var/www/название домена/html;
        index index.html index.nginx-debian.html;

        server_name название домена;

        location {
                include proxy_params;
                proxy_pass http://unix:/home/vasy/название домена/название домена.sock;
                try_files $uri $uri/ =404;
        }
}


Код Python
from flask import Flask
app = Flask(__name__)

@app.route('/')
def index():
    return 'Index Page'

@app.route('/hello/')
def hello():
    return 'Hello World'

if __name__ == "__main__":
    app.run(host='0.0.0.0')
  • Вопрос задан
  • 314 просмотров
Пригласить эксперта
Ответы на вопрос 2
gedev
@gedev
сисадмин-энтузиаст
Удалите эту строку из конфига Nginx:
try_files $uri $uri/ =404;
Тут дело в том, что Nginx должен передавать в бэкенд все запросы, на которые не может отдать ответ сам. Если папка hello действительно не лежит в root, то Nginx вернёт 404.

SoreMix тоже прав. Во Flask слэш имеет значение. Вы можете отключить строгое соблюдение слэшей добавив в приложение код:

app.url_map.strict_slashes = False
Ответ написан
Комментировать
SoreMix
@SoreMix
yellow
Потому что у вас путь прописан /hello/, а заходите на /hello
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы