2011-09-06 74 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永远不需要重定向。