我的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不再自动进行身份验证。