我需要帮助来解决这个问题。我的 django 应用程序使用 mod_wsgi、apache 和使用 nginx 的反向代理。nginx 监听端口 80,我们的应用程序在 VPS 内部运行。MOD WSGI 位于 127.0.0.1:8081。nginx 代理将请求传递到 127.0.0.1:8081。
有一天,我们的管理员给了我们 IP 210.201.201.200:8050(这个 IP 是虚拟的)。
我遇到的情况是,nginx 仍然监听端口 80,而不是 8050,首次打开登录页面(request.GET)可以浏览。但是,当我单击提交时,它总是重定向到 210.201.201.200:80,因此总是出现 404 错误。(210.201.201.200:80 中有另一个应用程序)
简而言之,我打开http://210.201.201.200:8050,点击提交,它会重定向到http://210.201.201.200:80,以及错误404。
有人能帮我解释一下这里出了什么问题吗?我的管理员指责我的网络服务器,说它(django 平台、nginx 或任何其他东西)只能在端口 80 上运行。
请给我反馈,我的问题的解决方案是什么?
请帮助我。谢谢
答案1
为了使其始终有效,您应该重定向到http://hostname:port/path
,而不仅仅是/path
。使用 django.contrib.auth 时,您可以LOGIN_REDIRECT_URL
在 settings.py 中覆盖例如。
一般来说,你可以使用contrib.sites 框架并传递到Site.objects.get_current().domain
需要的地方。