How to access local backend services to a deployed Web app using nginx?

Viewed 29

I'm deploying some services using Docker, with docker-compose and a nginx container to proxy to my domain. I have already deployed the frontend app, and it is accessible from the web. Supposedly, I only need to expose the frontend/nginx port to the web, without me needing to expose the rest of the services. But I'm not able to do that for now.

For example, Client -> Login Request -> frontend <-> (local) Backend get request.

Right now, I'm getting connection refused, and the get is pointing to http://localhost, and not the name of the service defined in docker-compose. (all containers are deployed on the same network, one that I have created)

What do I need to do to configure this?

Here is my nginx config so far:

server {
listen 80 default_server;
listen 443 ssl;
server_name mydomain;

ssl_certificate /etc/letsencrypt/live/mydomain/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/mydomain/privkey.pem;


location / {
    
    proxy_pass http://frontend:3000/;
}
location /auth {
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-NginX-Proxy true;
    proxy_pass http://auth:3003;
    proxy_ssl_session_reuse off;
    proxy_set_header Host $http_host;
    proxy_cache_bypass $http_upgrade;
    proxy_redirect off;
 

 }
 # Same for the other services

 (...) 

EDIT: Should I create a location for every get and post that I have for my services? As:

location getUser/ {
    proxy_pass http://auth:3003;
}


  
0 Answers
Related