2017-01-10 81 views
0

我正在写一个网址为Flask。我使用Flask-Secuirty进行身份验证。我使用nginx + gunicorn来部署它。烧瓶安全不能与多个工人一起使用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; 
    } 
} 

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

如果worker_number1,一切正常。

如果worker_number大于1就像3,我无法使用Flask-Security登录。

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

一些搜索后,我找不到这个直接原因。我猜这可能是由于Flask的SERVER_NAME配置或者Flask-SQLAlchemy的滥用造成的。

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

回答

0

使用类似Flask-Session,并使用Redis的作为会话存储。我不确定Flask-Security如何工作,但我认为它依赖于Flask会话,在这种情况下,它可以解决应用程序服务器之间用户会话切换的问题。