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;
}
}
if (-f $request_filename)statement and the break? I don't really get what's working and what's not, and what your needs are.index.htmlwith node? That would make things way easier.