Question

How to make Nginx redirect a request to only one location?

Posted February 8, 2019 290 views
NginxUbuntu 18.04

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.

×
1 answer

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

Submit an Answer