【问题标题】:Unable to POST, PUT or DELETE resource with flask when setting up https using nginx and gunicorn使用 nginx 和 gunicorn 设置 https 时,无法使用烧瓶 POST、PUT 或 DELETE 资源
【发布时间】:2022-01-16 22:37:41
【问题描述】:
我已经构建了一个烧瓶 API。
在这样的开发环境中使用它时:http://www.apiexample.com:5000,它可以工作。
但是一旦我使用 Nginx、Gunicorn 和受信任的 SSL 证书(以及端口 443)设置 prod 环境,我就不能再请求 POST、PUT 或 DELETE , 我只能做GET 请求。
这是我尝试发送任何表单时显示的内容。
是证书问题还是nginx/gunicorn 服务器设置问题?
【问题讨论】:
标签:
flask
https
ssl-certificate
gunicorn
nginx-reverse-proxy
【解决方案1】:
我发现并解决了这个问题。
事实上,在重定向期间,我的烧瓶应用程序丢失了 https 并重定向到 http,因为它没有从 ngninx 获取 X-Forwarded 标头。
这是我添加到 nginx 配置中的内容:
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Scheme https;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto https;