gpt4 book ai didi

django 管理员在保存时重定向到错误的端口

转载 作者:行者123 更新时间:2023-12-04 12:36:02 25 4
gpt4 key购买 nike

我有一个使用 nginx+apache 设置的 django 项目。外部访问的 http 端口是 20111,然后将其转发到服务器机器(具有内部 IP)到端口 80。因此 nginx 监听端口 80(并将相关请求传递给端口 5000 上的 apache)。

现在可以通过http://externalip:20111从外部访问初始登录。 - 但是当我完成一个管理操作时,比如保存一个条目,我会被重定向到 http://externalip/path/to/model -- 没有 20111 端口。结果是超时。如何告诉 django 对所有管理员重定向使用特定的主机名/端口(即 http://externalip:20111)?

最佳答案

在代理或负载平衡器后面部署应用程序时,通常依赖 X-Forwarded-Host标题。 Django 有 support为了它

首先,您必须设置 nginx 以发送正确的 header 。添加到您的 nginx 主机配置(在您的 location 部分中):

proxy_set_header X-Forwarded-Host $host:20111;

其次,添加到您的 settings.py:
USE_X_FORWARDED_HOST = True

它将允许 django 信任 X-Forwarded-Host来自请求的 header 。

它应该让它为你工作。出于安全原因,您不应信任 X-Forwarded-Host 中发送的每个值。 ,所以将您信任的域/IP 添加到 ALLOWED_HOSTSsettings.py

关于django 管理员在保存时重定向到错误的端口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8591189/

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