Запустите приложение Python Flask с модулем nginx

1

Я играл сегодня с сервером приложений Nginx Unit и Python 3. Он отлично работает, пока я запускаю простое приложение WSGI, но я не буду работать (404) при попытке использовать Flask...

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

upstream unit_backend {
    server 127.0.0.1:8300;
}

server {
    listen 80 default_server;
    listen [::]:80 default_server;

    root /var/www/html;

    server_name _;

    location / {

    }

    location /unittest {
            proxy_pass http://unit_backend;
            proxy_set_header Host $host;
    }
}

Конфигурация устройства:

{
"listeners": {
    "*:8300": {
        "application": "test"
    }
},

"applications": {
    "test": {
        "type": "python 3.5",
        "processes": 4,
        "user": "noisefloor",
        "group": "noisefloor",
        "path": "/home/noisefloor/code/unit_test",
        "module": "wsgi"
    }
},

"access_log": "/var/log/access.log"
}

wsgi.py, который работает при открытии http://127.0.0.1/unittest в браузере:

from datetime import datetime

def application(environ, start_response):
    status = '200 OK'
    headers = [('Content-type', 'text/plain; charset=utf-8')]
    start_response(status, headers)
    text = 'Hello World @ {}'.format(datetime.now())
    return [text.encode('utf-8')]

Когда wsgi.py выглядит следующим образом:

from flask import Flask

    application = Flask(__name__)

    @application.route('/')
    def test():
        return 'Hello Flask!'

Он получает 404, но я вижу, что я ожидаю увидеть при вызове http://127.0.0.1:8300 - так что это в основном работает, просто не получается, почему он не будет работать при вызове http://127.0. 0,1/UnitTest

Теги:
flask
nginx

1 ответ

0

Вопрос старый, но я считаю, что на него стоит ответить (так как он один из первых проиндексирован Google, если вы наберете Nginx Unit).

Поскольку вы не указали ни одного URI в директиве proxy_pass запрос передается в ваше приложение фляги с URI /unittest и у вас явно нет маршрута, указанного в приложении фляги, кроме "/"

Ещё вопросы

Сообщество Overcoder
Наверх
Меню