![flask session 在开发服务器中工作,但在生产服务器(nginx)中不工作](https://linux22.com/image/787184/flask%20session%20%E5%9C%A8%E5%BC%80%E5%8F%91%E6%9C%8D%E5%8A%A1%E5%99%A8%E4%B8%AD%E5%B7%A5%E4%BD%9C%EF%BC%8C%E4%BD%86%E5%9C%A8%E7%94%9F%E4%BA%A7%E6%9C%8D%E5%8A%A1%E5%99%A8%EF%BC%88nginx%EF%BC%89%E4%B8%AD%E4%B8%8D%E5%B7%A5%E4%BD%9C.png)
我创建了一个带有身份验证系统的 Web 应用程序。我使用 session 模块来检查用户是否已登录。在登录阶段,我设置 session['logged_id'] = True,当客户端尝试访问主页时,我会检查 session['logged_in'] 是否等于 True。但是在创建帐户后,当我尝试通过登录页面访问主页时,即使密码正确,我也会再次被重定向到登录页面。所以,我认为 session['logged in'] 仍然是 false。
WebApp 在开发服务器中运行良好,但在生产服务器中无法运行,在这种情况下,nginx 和 gunicorn 作为 wsgi 服务器。
所以我不认为这是一个与代码相关的问题,而是与 nginx 或 gunicorn 配置有关
这是我的 nginx 配置文件
server {
listen 80;
server_name 192.168.1.15;
location / {
include proxy_params;
proxy_pass http://unix:/home/pi/website/ris2023/ris.sock;
}
}
这是我的 gunicorn 服务文件
[Unit]
Description=istanza di gunicorn per eseguire l'applicazione flask
After = network.target
[Service]
User = pi
Group = www-data
WorkingDirectory = /home/pi/website/ris2023
Environment = "PATH=/home/pi/website/ris2023/venv/bin"
ExecStart=/home/pi/website/ris2023/venv/bin/gunicorn --workers 3 --bind unix:ris.sock -m 007 wsgi:app
[Install]
WantedBy=multi-user.target
我也尝试过使用 flask-login,但遇到了同样的问题