如何通过Nginx反向代理将POST请求发送到Node / Express.js

时间:2015-10-05 19:48:33

标签: node.js nginx proxy

我有一个典型的带有POST路线的Express.js应用程序。

我让nginx充当Express服务器的反向代理。

nginx正确发送传入的请求,但似乎丢弃了POST请求Body。

这是我的nginx conf:

server {
  listen 80;

  server_name domain.com;

  location / {
    proxy_pass http://localhost:3000;
    proxy_redirect off;
    proxy_http_version 1.1;
    proxy_buffering off;
  }
}

编辑:

原来我的nginx配置很好,错误是在应用程序的其他地方,但它看起来像一个nginx错误。上面的配置完全正常。

2 个答案:

答案 0 :(得分:1)

原来我的nginx配置很好,错误是在应用程序的其他地方,但它看起来像一个nginx错误。上面的配置完全正常。

答案 1 :(得分:0)

运气好吗?

server {
    listen 80;

    server_name domain.com;

    location / {
        proxy_pass http://localhost:3000;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;
    }
}

或者更像是这样的东西:

server {
    listen 0.0.0.0:80;
    server_name yourdomain.com yourdomain;
    access_log /var/log/nginx/yourdomain.log;

    location / {
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header Host $http_host;
      proxy_set_header X-NginX-Proxy true;

      proxy_pass http://localhost:3000;
      proxy_redirect off;
    }
 }