I have a reverse proxy for two locations / and /services
server {
...
location / {
proxy_pass http://localhost:3000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
location /services {
proxy_pass http://localhost:3001;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
...
}
And there are two NodeJS APIs one is listening on port 3000
and the other on 3001
. Whenever I send a request to example.com/services
it gets handled by both apps. I want it to get handled only by the second app listening on port 3001. How do I achieve that?
These answers are provided by our Community. If you find them useful, show some love by clicking the heart. If you run into issues leave a comment, or add your own answer to help others.
Hello,
This is quite strange, the config looks correct. Are you sure that the second backend is not connected to the same database for example?
I could also suggest following the steps here on how to troubleshoot common Nginx problems:
https://www.digitalocean.com/community/questions/how-to-troubleshoot-common-nginx-issues-on-linux-server
Regards, Bobby