Node.js Nginx反向代理不';不允许POST请求

Node.js Nginx反向代理不';不允许POST请求,node.js,mongodb,nginx,Node.js,Mongodb,Nginx,我有一个服务器,我在上面提供两个节点的js应用程序,一个在上,另一个在上。我通过使用nginx反向代理,将每个应用程序设置为在一个端口上运行,并根据上述地址将客户端重定向到每个端口,从而实现了这一点 然而,我现在面临这个问题,我无法将任何POST请求保存到我的MongoDB。具体地说,如果我提出POST请求,我得到405;如果我发送POST请求,一切正常,数据保存在DB中。为了清楚起见,端口3000是运行app1的端口。 有人能帮我指出我在这里遗漏了什么吗?我觉得这里的问题是,应用程序正在端口3

我有一个服务器,我在上面提供两个节点的js应用程序,一个在上,另一个在上。我通过使用nginx反向代理,将每个应用程序设置为在一个端口上运行,并根据上述地址将客户端重定向到每个端口,从而实现了这一点

然而,我现在面临这个问题,我无法将任何POST请求保存到我的MongoDB。具体地说,如果我提出POST请求,我得到405;如果我发送POST请求,一切正常,数据保存在DB中。为了清楚起见,端口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;
        }
}

我不太了解nginx,不知道正确的语法是什么,但我怀疑您是在告诉客户端重定向而不是直接转发请求,而浏览器客户端不会重定向POST请求。您可以通过打开Chrome调试器中的“网络”选项卡来确认这一点,并查看是否从帖子中得到3xx响应。@jfriend00它是405。我相信通过将fetch()中的路径更改为fetch(“/app1/”,data),我成功地解决了这个问题。我仍然想知道是否有nginx解决方案。