Django Nginx子域管理员重定向错误

时间:2012-09-18 11:21:42

标签: django nginx django-admin

我的Django 1.4配置了Nginx代理和远程认证后端。

代理配置为将django应用程序作为子域服务器,将身份验证服务器作为子域服务,因此我们有:

djangoapp.domain.com
auth.domain.com

第一次访问djangoapp时,它会重定向到auth域进行身份验证,然后返回到djangoapp域。这部分适用于为子域

设置的nginx代理头
server {
    listen 443;
    ssl on;
    server name djangoapp.domain.com;

    location / {
       proxy_pass http://djangoapp
       proxy_set_header Host $host;
    }
}

使用proxy_set_header Host $ host;设置身份验证工作,删除它会中断身份验证。我已经看到其他解决方案暗示这是解决django的工作,但在这种情况下这不会起作用。

问题主要在于管理界面。如果您尝试访问管理站点,django会尝试重定向到无效的网址。例如,手动输入网址:

https://djangoapp.domain.com/admin

重定向到

https://djangoapp.domain.com/.domain.com/admin

我想了解为什么django试图重定向部分网址而不使用相对网址?

我已经尝试禁用django中的公共中间件来停止奇怪的重定向,但是通过禁用它,django admin不再自动进行身份验证。

1 个答案:

答案 0 :(得分:0)

这是由网址重写导致的familiar问题,在您的设置文件中设置了FORCE_SCRIPT_NAME = ''