【发布时间】:2012-09-10 15:47:29
【问题描述】:
我已经为 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;设置身份验证有效,删除它会破坏身份验证。我曾看到其他解决方案建议将此作为修复 django 的解决方法,但在这种情况下这不起作用。
问题主要在于管理界面。如果您尝试访问管理站点,django 会尝试重定向到无效的 url。例如手动输入网址:
https://djangoapp.domain.com/admin
重定向到
https://djangoapp.domain.com/.domain.com/admin
我想了解为什么 django 尝试重定向部分 url 而不是使用相对 url?
我已尝试禁用 django 中的通用中间件以停止奇怪的重定向,但是通过禁用此功能,django 管理员不再自动进行身份验证。
【问题讨论】:
标签: django nginx django-admin