Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Criando conexão com frontend e backend

Olá, bom dia, espero que estejam todos bem!

Recentemente estou preparando um servidor VPS para rodar minhas aplicações e estou quase lá, mas falta um pouco. Vou explicar um pouco sobre como fiz o processo de deploy para elucidar miha dúvida.

Como mencionei estou utilizando um servidor VPS para hospedar o site e decidi disponibilizar a solução em containers docker com a ferramenta docker-compose. Como sempre no localhost tudo funciona perfeitamente, frontend se conecta com o backend por meio de requisções Axios e backend conversa com o banco de dados. Todos eles estão dentro de uma mesma rede de internet do docker.

O problema é que quando eu fui subir a aplicação para o servidor VPS o frontend não consegue se conectar com o backend. Tudo me levou a crer que a baseUrl que eu inseri nas requisições para o axios está errada.

Já tentei ("http://localhost:porta") tentei também ("http://ip-container-backend:porta") onde a porta corresponde a porta do backend.

Para as configurações do servidor nginx que estou utilizando apliquei os seguintes diretivas.

upstream frontend {
    server frontend:3000;
}

upstream backend {
    server backend:8000;
}

server {
    listen 80;
    listen [::]:80; 

    location / {
        proxy_pass http://frontend;
    }

    location /backend {
        rewrite /backend/(.*) /$1 break; # não sei exatamente se essa linha é essencial para o meu caso
        proxy_pass http://backend;
    }

    server_name localhost;
}

Caso eu precise fornecer mais alguma informação estou à disposição. Obrigado!

Obs: frontend e backend são os nomes dos serviços discriminados no arquivo docker-compose.yml.

1 resposta
solução!

De fato estava tendo um problema na rota da requisição axios, bastou inserir o endereço de ip do servidor VPS que tudo começou a funcionar!

solução

endereco-ip-maquina-VPS:porta # porta em que o container docker foi exposto

Abraço e espero que essa dúvida possa ajudar outras pessoas que possam estar fazendo deploy de aplicações em servidores VPS como os oferecidos pela hostgator, digital ocean e afins.