title: Nginx unable to serve the node.js POST requests
body: <p>I've a VM Ubuntu15.04 server and I've configured nginx to listen requests on port 80 and forward them to respective applications on different ports. I have a simple node.js service running over port 3000 which has one GET and POST service. I have started it by using PM2 and added a proxy_pass to localhost:3000/ in my nginx default conf. The problem is when i try to use a GET request it is working fine but in case of POST it is showing 404 error. I've tried to use the POST service through postman client.</p>
  
  <p>This is my default conf file of nginx</p>
  
  <pre><code>##
  # You should look at the following URL's in order to grasp a solid understanding
  # of Nginx configuration files in order to fully unleash the power of Nginx.
  # http://wiki.nginx.org/Pitfalls
  # http://wiki.nginx.org/QuickStart
  # http://wiki.nginx.org/Configuration
  #
  # Generally, you will want to move this file somewhere, and start with a   clean
  # file but keep this around for reference. Or just disable in sites-enabled.
  #
  # Please see /usr/share/doc/nginx-doc/examples/ for more detailed examples.
  ##
  
  upstream my_nodejs_upstream {
  server 127.0.0.1:3000;
  keepalive 64;                                                         
  }
  
  server {
  listen 80 default_server;
  listen [::]:80 default_server;
  
      # SSL configuration
      #
      # listen 443 ssl default_server;
      # listen [::]:443 ssl default_server;
      #
      # Self signed certs generated by the ssl-cert package
      # Don't use them in a production server!
      #
      # include snippets/snakeoil.conf;
  
      root /var/www/face_rec/ServerTest;
  
      # Add index.php to the list if you are using PHP
      index index.html index.htm index.nginx-debian.html;
  
      server_name localhost;
  
      location / {
              # First attempt to serve request as file, then
              # as directory, then fall back to displaying a 404.
              try_files $uri $uri/ =404;
  
      proxy_pass http://localhost:3000;
      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_http_version 1.1;
      proxy_set_header Upgrade $http_upgrade;
      proxy_set_header Connection "upgrade";
      proxy_redirect off;
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header   X-Forwarded-Proto $scheme;
      }
  
      # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
      #
      #location ~ \.php$ {
      #       include snippets/fastcgi-php.conf;
      #
      #       # With php5-cgi alone:
      #       fastcgi_pass 127.0.0.1:9000;
      #       # With php5-fpm:
      #       fastcgi_pass unix:/var/run/php5-fpm.sock;
      #}
  
      # deny access to .htaccess files, if Apache's document root
      # concurs with nginx's one
      #
      #location ~ /\.ht {
      #       deny all;
      #}}
    # Virtual Host configuration for example.com
    #
    # You can move that to a different file under sites-available/ and symlink 
    that
    # to sites-enabled/ to enable it.
    #
    #server {
    #       listen 80;
    #       listen [::]:80;
  
    #       server_name example.com;
  
    #       root /var/www/example.com;
    #       index index.html;
  
    #       location / {
    #               try_files $uri $uri/ =404;
    #       }
    #}
  </code></pre>
  
  <p>Any reference, tutorial, suggestions or solutions please let me know how to do it.</p>