【发布时间】:2011-03-24 10:45:36
【问题描述】:
我有一个用 Django 构建的 webapp。我目前正在家里路由器后面的笔记本电脑上运行它。
我已将路由器配置为将发送到特定端口的所有流量路由到该笔记本电脑。
我有 Nginx 作为 Apache 的反向代理,使用 mod_wsgi 来运行 Django。
我的问题是:当我尝试提交任何 POST 表单时,端口号会从 url 中删除(例如 209.245.23.201:1552/login/ 变为 209.245.23.201/login/)
这自然会中断。是什么原因造成的(Nginx、Apache、Django?),我该如何解决?
提前致谢。
编辑:表单似乎确实提交了,但我认为重定向失败。
编辑 2:问题肯定出在 Nginx,或者 Nginx 和 Apache 之间的交互。我尝试使用 Apache 作为唯一服务器的设置,运行 django,它运行良好。所以要么 Nginx 放弃了端口,要么 Apache 被 Nginx 作为代理弄糊涂了。随便
【问题讨论】:
-
愚蠢的问题......你怎么知道端口号被丢弃了?你是怎么知道的?
-
它确实会从我地址栏中的网址中删除。
-
这可能是浏览器问题。你用的是什么浏览器?
-
听起来好像重定向有问题。我们必须查看实际导致重定向的代码,以便可能告诉您它为什么这样做。
-
不是浏览器。我尝试了 Chromium 和 Firefox。登录后 Django 正在执行重定向,但这只是返回 HttpResponseRedirect('/dashboard/')。当我运行 Django 测试服务器时这不是问题,只有当我通过 Nginx 和 Apache 连接时才会发生。