2011-09-06 75 views
0

我有兩個共享相同問題的網站,它們都託管在Amazon EC2上。 這些機器是Debian 6.0,前面的nginx服務器服務於媒體,並且代理到apache + mod_wsgi來爲django服務。Django形成重定向到亞馬遜AWS上的內部IP

網站上的正常航行正常工作,但每當我點擊一個鏈接不帶後綴斜線,或我提交表單,而不是重定向我www.domain.com/path/to/page/我將顯示ip-11-111-11-111/path/to/page/,與ip-11-111-11-111是我的AWS內部IP地址。表單/鏈接正在執行,因爲python代碼被執行,但是當模板被調用時,url被「內置」錯誤。設置APPEND_SLASH = True沒有解決它,並且管理站點發生同樣的行爲,所以我懷疑這是一些普遍問題,而不是我的代碼中的錯誤。

有沒有人遇到過這個問題?有關如何解決它的任何建議?

我一直在Google上搜索幾個星期,現在仍然無法弄清楚,任何有關我應該在哪裏尋找的想法都將被讚賞。

+0

當你直接在apache上ssh-tunnel的時候,會發生這種情況嗎?站點表設置在django中是否正確? – jensq

+0

你能解釋一下嗎?我沒有使用網站框架,因爲我只在一個域中提供單個項目。 – ergelo

+0

您可以使用ssh -Lport:本地主機:主機端口映射阿帕奇網絡服務器端口到本地端口和檢查本地主機:端口如果重定向是假那裏。 Django默認使用網站框架來計算絕對網址,您是否禁用了它? – jensq

回答

1

如果其他人有同樣的問題,問題是Apache重定向非www網站到它正在偵聽的地址,這是內部IP。我通過強制www來修復它。在nginx中,這樣apache永遠不需要重定向。