Eu tenho uma API e um aplicativo da web que estão em execução no mesmo cluster do docker.
1) É melhor ter um contêiner nginx para balanceamento de carga dos dois ou ter dois contêineres nginx separados para balancear a carga cada um separadamente?
2) Se o primeiro, eu tentei isso:
server {
listen 80;
server_name xxy.com;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
server_name
xxy.com;
location / {
proxy_pass http://web_app:8000;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
server {
listen 443 ssl;
server_name yyyy.com;
location / {
proxy_pass http://api_backend:5000;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
No entanto, recebo um erro de gateway nginx 502 para a API.
E com a última solução, tive que alterar a porta de uma das APIs para 444, já que quando eu docker-compose up
recebi um erro port 443 is already in use
.
server {
listen 444 ssl;
server_name yyyy.com;
location / {
proxy_pass http://api_backend:5000;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
Alguma idéia ou forma de resolver o problema de ter dois processos nginx no mesmo servidor?
Observação: meu DNS está configurado para redirecionar para o mesmo endereço IP.
Eu também tentei seguir isso sem sucesso. Ainda o mesmo erro acima.
Tags nginx docker docker-compose