烧瓶安全不能与多个工人一起使用 gunicorn?

sta*_*mer 1 python nginx gunicorn flask-sqlalchemy flask-security

我正在写一个网站Flask。我Flask-Secuirty用来做身份验证。我nginx + gunicorn用来部署它。

nginx的配置如下:

server{
    listen 80;
    server_name project.example.com;
    location / {
        proxy_pass http://127.0.0.1:5000;

        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forward-For $proxy_add_x_forwarded_for;
    }
}
Run Code Online (Sandbox Code Playgroud)

我用gunicorn -w worker_number -k gevent run:app -p app.pid -b 127.0.0.1:5000开始gunicorn

如果worker_number1,则一切正常。

如果worker_number大于1like 3,我将无法使用 登录Flask-Security

服务器的输出说登录的post请求是200。但服务器再次将我重定向到登录页面。

经过一番搜索,我找不到直接原因。我猜这可能是由SERVER_NAMEFlask的配置或Flask-SQLAlchemy.

有没有人遇到过这种情况?请给我一些建议。

小智 8

我用flask_login也遇到过类似的问题,worker_number大于1的时候就登录不上了。

我的 app.secret_key 被设置为 os.urandom(24),所以每个工人都会有另一个密钥。

将 app.secret_key 设置为字符串解决了我的问题。