Redirect, url_for возвращает BAD REQUEST для приложения Flask за nginx, gunicorn - PullRequest
0 голосов
/ 20 сентября 2019

Я испробовал все возможные решения, показанные в предыдущем Stackoverflow, но у меня все еще возникают трудности.

Мой статический JS выполняет ajax-запрос к /learn, который использует redirect(url_for('somewhere',_external=True)) в моем приложении Flask.Все в порядке, когда запускается на локальном хосте, просто глючит за nginx и gunicorn.

@app.route('/learn', methods=["POST"])
def learn():
   return redirect(url_for('somewhere',_external=True))


@app.route('/somewhere')
def somewhere():
    return 'somewhere'

Я пытался использовать ProxyFix middleware, используя app.wsgi_app = ProxyFix(app.wsgi_app).

Мой nginx conf (мой серверпрослушивает 443)

location /my/flask/app {
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_set_header Host $http_host  // I've tried just $host:$server_port also
    proxy_set_header X-Real_IP $remote_addr;
    proxy_pass http://127.0.0.1:8002;
    proxy_set_header X-NginX-Proxy true;
}

Я использую Gunicorn через

gunicorn -b 127.0.0.1:8002 -e SCRIPT_NAME=/my/flask/app --chdir /my/flask/app app:app
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...