保存时,django admin重定向到错误的端口

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

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


在代理或负载均衡器后面部署应用程序时,通常依赖X-Forwarded-Host标头。 Django支持它

首先,你必须设置nginx来发送正确的头文件。 添加到您的nginx主机配置(位于您的location部分):

proxy_set_header X-Forwarded-Host $host:20111;

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

USE_X_FORWARDED_HOST = True

它将允许django从请求中信任X-Forwarded-Host头。

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

链接地址: http://www.djcxy.com/p/56831.html

上一篇: django admin redirects to wrong port on save

下一篇: Dynamic Assemblies and Methods