node.js - Nginx 反向代理不允许 POST 请求
问题描述
我有一台服务器,我在其上为我的 2 个 Node js 应用程序提供服务,一个在https://example.com/app1上,另一个在https://example.com/app2上。我设法通过使用 nginx 反向代理,将每个应用程序设置为在一个端口上运行,并根据上述地址将客户端重定向到每个端口来实现这一点。
但是,我现在面临这个问题,我无法将任何 POST 请求保存到我的 MongoDB。具体来说,如果我从https://example.com/app1发出 POST 请求,我会得到 405;如果我从https://example.com:3000发送 POST 请求,一切都很好,数据保存在数据库中。为了清楚起见,端口 3000 是运行 app1 的端口。
有人可以帮助我并向我指出我在这里缺少什么吗?我觉得这里的问题是应用程序正在端口 3000 上运行并显示在端口 80 上,但是来自端口 80 的数据没有返回到端口 3000?
我的反向代理代码:
server {
listen 80 default_server;
listen [::]:80 default_server;
root /var/www/html;
index index.html index.htm index.nginx-debian.html;
server_name mysubdomain.domain.com www.mysubdomain.domain.com;
location /app1 {
rewrite ^/app1/(.*)$ /$1 break;
proxy_http_version 1.1;
proxy_cache_bypass $http_upgrade;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://myIPaddress:3000;
}
}
解决方案
推荐阅读
- windows - 网络:无法解析 Kubernetes 参数:pod 没有标签 vpc.amazonaws.com/PrivateIPv4Address
- swift - 过渡到 UITabBarController
- firebase - 如何将注册令牌发送到应用服务器
- django - 为什么不显示 ValidationError?
- node.js - [ MongoNetworkError ],当我在 Heroku 上部署时,应用程序无法连接到 mongoDB
- excel - 如果 A 列的值在 B 列和 C 列的范围内,则复制
- python - 匹配多个数据框之间的子字符串并在单独的列中求和加权值
- c++ - 是否可以在程序集插入中执行 80h 系统功能?
- excel - 如果值小于旧值 |excel|VBA|,我如何清除列并再次填充数据
- c++ - 如何使用 QString toUtf8 和 fromUtf8?