nginx + nodejs configuration

Viewed 13294

I have a problem with my current nginx configuration. What I am trying to do is:

  • For requests without any path, get the index.html (works)
  • Get existing files directly (works)
  • If the requested file or path does not physically exist, proxy request to nodejs (404)

I have tried several configurations found here on stackoverflow, but none of them fit my needs.

Here is my current configuration:

# IP which nodejs is running on
upstream app_x {
    server 127.0.0.1:3000;
}

# nginx server instance
server {
listen 80;
server_name x.x.x.x;
#access_log /var/log/nginx/x.log;

root /var/www/x/public;

location / {
    root /var/www/x/public;
    index index.html index.htm index.php;
}

location ^/(.*)$ {
    if (-f $request_filename) {
        break;
    }
    proxy_set_header Host $http_host;
    proxy_pass http://127.0.0.1:3000;
}
}
2 Answers
Related