如何通过nginx反向代理设置cookie(flask应用程序)

2024-05-28 19:37:55 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在烧瓶里写一个应用程序。 设置和获取cookies的测试代码为

from flask import Flask, make_response, render_template
from flask import request
from flask import Response
from flask import jsonify

application = Flask(__name__)

@application.route("/")
def index():
    resp = make_response("Setting cookie")
    resp.set_cookie("test", "hw", max_age = 3090, path='/', domain="127.0.0.1")

    return resp

@application.route("/test")
def test():
    return jsonify(request.cookies)

if __name__ == "__main__":
    application.run(host='127.0.0.1')

如果我在没有nginx的情况下运行它(仅在命令行的端口5000上),我可以看到cookie集,但一旦我将它放在nginx后面,cookie就拒绝设置。我的nginx配置是

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

    location /static {
        alias /srv/HackerNews/news/static/;
    }


    location /users {
        include uwsgi_params;
        uwsgi_pass unix:/srv/HackerNews/backend/service.sock;
        uwsgi_param     SCRIPT_NAME /users;
        }

    location / {
        include uwsgi_params;
        proxy_cookie_path / /;
        uwsgi_pass unix:/srv/HackerNews/backend/service.sock;
        uwsgi_param     SCRIPT_NAME /;
        }
}

我在谷歌上搜索了几个小时(在那里我知道了proxy_cookie_path),但对我来说什么都不管用。我发现唯一其他类似的问题没有得到回答。有人能帮忙吗


Tags: pathnamefromtestimportflaskserverapplication

热门问题