1
我有配置了Nginx代理和遠程認證後端的Django 1.4。Django Nginx的子域管理員重定向錯誤
代理被配置到服務器的Django應用程序作爲一個子域和認證服務器作爲一個子域,所以我們有:
djangoapp.domain.com
auth.domain.com
當visting首次將其重定向到身份驗證域認證djangoapp然後返回到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是試圖重定向的部分URL,而不是使用相對URL?
我已經嘗試禁用django中的常見中間件,它會停止奇怪的重定向,但是通過禁用此功能,django管理員不再自動進行身份驗證。
感謝您的快速響應。要跟進,請刪除設置爲複合APPEND_SLASH = False以再次使用默認值True。並添加此設置已解決問題 – Greg
進一步測試表明,這並沒有很好地解決了這個問題。當使用管理員操作時,使用add將域重新放回。例如。 https://djangoapp.domain.com/admin/appname/add/.domain.com/admin/appname/modelname/ – Greg