django - Http POST丢弃URL中的端口

标签 django apache nginx

我有一个用Django构建的webapp。我目前正在路由器后面的家用笔记本电脑上运行它。

我将路由器配置为将发送到特定端口的所有流量路由到该笔记本电脑。

我使用Nginx作为Apache的反向代理,使用mod_wsgi运行Django。

我的问题是这样的:当我尝试提交任何POST表单时,端口号已从网址中删除(例如209.245.23.201:1552/login/变成209.245.23.201/login/)

自然,这打破了。是什么原因造成的(Nginx,Apache,Django?),我该如何解决?

提前致谢。

编辑:看起来该窗体确实提交,但我认为重定向失败。

编辑2:问题肯定是Nginx或Nginx与Apache之间的交互。我尝试将Apache作为唯一的服务器运行django进行安装,并且运行良好。因此,要么Nginx丢弃了端口,要么以某种方式使Apache被Nginx充当代理感到困惑。

最佳答案

我的开发服务器也有同样的问题。
经过一些互联网搜索,我发现了这个讨论(nginx, apache, and odd admin error),其中的解决方案是修改nginx的代理配置。

要修改的配置设置为:

proxy_set_header            Host $host;

解决方案是添加端口号:
proxy_set_header            Host $host:$server_port;

现在,在我的ngnix + apache2(与工作人员mpm)+ django中,一切都很好。

关于django - Http POST丢弃URL中的端口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3391986/

相关文章:

java - 我可以多次从 Apache PropertiesConfiguration 读取相同的配置而不损失性能吗?

django 动态过滤 q 个对象

python - 表单在 django_filters 模板中不可用

apache - HTTPD 不会在 Centos OS 7/Apache 2.4.6 上启动

javascript - 使用 apache 为 js 应用程序及其 api 提供服务

nginx - Nginx 背后的多个 Meteor 站点

ubuntu - 如何为每个用户配置msmtprc

http - 可以使用 nginx location 指令发送 http 请求吗?

Django 休息 : How do i return SimpleJWT access and refresh tokens as HttpOnly cookies with custom claims?

python - Django slug, `\w` 未检测到韩语 + 中文