How to prevent nginx from reverse proxy specific subdirectories

Solution 1:

You can bind the proxy_pass to EXACTLY the path you like, like this

location = / {
    proxy_pass http://localhost:9999/;
}

This makes sure that no other path will be passed but /

OR

you can use this syntax for just the subdirectories to be matched

location ^~ /subdir {
     alias /var/www/site/subdir;
}

location / {
    proxy_pass http://localhost:9999/ ;
}

The ^~ matches the subdir and then stops searching so the / will not be executed. It is described here.