我正在用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;
}
}
我用gunicorn -w worker_number -k gevent run:app -p app.pid -b 127.0.0.1:5000
来启动gunicorn
。在
如果worker_number
是1
,则一切正常。在
如果worker_number
大于1
,就像3
,我不能用Flask-Security
登录。在
服务器的输出显示登录的post请求是200。但是服务器再次将我重定向到登录页面。在
经过一番寻找,我找不到这件事的直接原因。我想这可能是由于SERVER_NAME
烧瓶的配置或者{
以前有人遇到过这种情况吗?请给我一些建议。在
我在flask_登录时遇到了类似的问题,当worker_number大于1时,我无法登录。在
我的app.secret_密钥设置为os.urandom公司(24),所以每个工人都会有另一个密钥。在
设置app.secret_密钥一根绳子解决了我的问题。在
只需使用固定密钥。
使用以下命令生成。
$ openssl rand -base64 <desired_length>
如果您不想在源代码中硬编码密钥,而出于安全目的,您不应将其硬编码。
设置一个环境变量并获取它。在
使用类似于Flask-Session的内容并将Redis用作会话存储。我不确定Flask安全性是如何工作的,但我假设它依赖于Flask会话,在这种情况下,它将解决用户会话在应用服务器之间切换的问题。在
相关问题 更多 >
编程相关推荐