gpt4 book ai didi

https - Nginx/Django 管理员 POST 仅限 https

转载 作者:行者123 更新时间:2023-12-03 00:35:28 28 4
gpt4 key购买 nike

我在 Centos 6 机器上部署了 Nginx/Gunicorn/Django 服务器,只有 SSL 端口 (443) 对外界可见。所以除非使用 https:// 调用服务器,你不会得到任何回应。如果你用 http://domain:443 来调用它,您只会收到 400 Bad Request 消息。端口 443 是访问服务器的唯一途径。

我使用 Nginx 来服务我的静态文件(CSS 等),所有其他请求均由 Gunicorn 处理,它在 http://localhost:8000 运行 Django 。因此,导航至 https://domain.com工作得很好,管理站点内的链接也是如此,但是当我在 Django 管理中提交表单时,https 在重定向时丢失,我被发送到 http://domain.com/ request_uri 无法到达服务器。即使如此,POST 操作也能正常工作,并且数据库已更新。

下面列出了我的配置文件。位置location /我觉得应该找到解决方案的部分。但它似乎不像 proxy_set_header X-*指令有任何影响。我是否缺少模块或其他东西?我正在运行 nginx/1.0.15。

我在互联网上找到的所有内容都指向 X-Forwarded-Protocol https就像它应该做一些事情,但我没有得到任何改变。我也无法在远程服务器上进行调试,尽管我的下一步可能必须在启用调试的情况下进行本地编译以获得更多线索。最后的手段是公开端口 80 并重定向所有内容...但这需要一些文书工作。

[http://pastebin.com/Rcg3p6vQ](我的 nginx 配置参数)

server {
listen 443 ssl;

ssl on;
ssl_certificate /path/to/cert.crt;
ssl_certificate_key /path/to/key.key;
ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers HIGH:!aNULL:!MD5;

server_name example.com;

root /home/gunicorn/project/app;
access_log /home/gunicorn/logs/access.log;
error_log /home/gunicorn/logs/error.log debug;

location /static/ {
autoindex on;
root /home/gunicorn;
}

location / {
proxy_pass http://localhost:8000/;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Scheme $scheme;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Protocol https;
}

}

最佳答案

还没有时间准确理解这两行的作用,但删除它们解决了我的问题:

    proxy_redirect off;
proxy_set_header Host $host;

关于https - Nginx/Django 管理员 POST 仅限 https,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11680931/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com