首页 > 解决方案 > 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;
        }
}

标签: node.jsmongodbnginx

解决方案


推荐阅读