Currently i’m using nginx server and using nodejs server as reverse proxy.
I want to make the nginx server proxy_pass different server by location.
So, lets say my domain is subdomain.domain.com
.
When loading subdomain.domain.com/
, this should serve static files.
When loading subdomain.domain.com/example1/req1/req2
, this should route to 127.0.0.1:3000/req1/req2
.
When loading subdomain.domain.com/example2/req1/req2
, this should route to 127.0.0.1:8080/req1/req2
.
But my configuration routes subdomain.domain.com/example1/req1/req2
to 127.0.0.1:3000/example1/req1/req2
resulting error. (nodejs returns Cannot GET /example1)
How should I write this nginx conf file properly?
2
Answers
Try use rewrite directive in location block.
Something like:
You can check documents related to rewrite module at http://nginx.org/en/docs/http/ngx_http_rewrite_module.html
You need to add below code snippet to your nginx.conf.