Eu tenho o seguinte cenário:
Serviço A
O serviço A está disponível em host:8080
.
Eu configurei um proxy reverso no nginx para servicea.domain
resolver host:8080
.
Aqui está meu arquivo de configuração (Local: /etc/nginx/sites-available/servicea )
server {
listen 80;
listen [::]:80;
server_name servicea.domain.com;
location / {
proxy_pass http://host:8080/admin/;
include proxy_params;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Host $server_name;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_read_timeout 90;
proxy_set_header X-Forwarded-Proto $scheme;
set $xforwardedssl "off";
if ($scheme = https) {
set $xforwardedssl "on";
}
}
}
Serviço B
Gostaria de fazer o mesmo com o Serviço B (Grafana) . Isso pode ser alcançado em host:3000
. Meu nginx-config em /etc/nginx/sites-available/serviceb se parece com isto:
server {
listen 80;
listen [::]:80;
server_name serviceb.domain.com;
location / {
proxy_pass http://host:3000/;
include proxy_params;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Host $server_name;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_read_timeout 90;
proxy_set_header X-Forwarded-Proto $scheme;
set $xforwardedssl "off";
if ($scheme = https) {
set $xforwardedssl "on";
}
}
}
- Ambos os arquivos estão vinculados simbolicamente a /etc/nginx/sites-enabled/ .
- O Nginx inicia com sucesso e não reclama.
- Tudo funciona ao ligar
servicea.domain
. - Ao ligar,
serviceb.domain
recebo um código de erro 400 no navegador.
Quando uso o wget para carregar a página, vejo que na verdade ela não resolve para Host:3000, mas para Host:80.
╰─$ wget serviceb.domain.com
Will not apply HSTS. The HSTS database must be a regular and non-world-writable file.
ERROR: could not open HSTS store at '/home/config/.wget-hsts'. HSTS will be disabled.
--2024-04-08 12:17:00-- http://serviceb.domain.com/
Resolving serviceb.domain.com (serviceb.domain.com)... 10.25.25.34
Connecting to serviceb.domain.com (serviceb.domain.com)|10.25.25.34|:80... connected.
HTTP request sent, awaiting response... 400 Bad Request
2024-04-08 12:17:03 ERROR 400: Bad Request.
Por que é que? Eu tenho a mesma configuração 1:1? Uma pequena prova de que a configuração é a mesma. Aqui está a saída do diff:
╰─$ diff serviceb servicea
5c5
< server_name servicea.domain.com;
---
> server_name serviceb.domain.com;
8c8
< proxy_pass http://host:8080/admin/;
---
> proxy_pass http://host:3000/;
Alguém pode me dar uma dica de onde posso encontrar configurações que substituem meu proxy reverso ou que afetem a resolução de nomes? Deixe-me saber se precisar de mais informações.
Agradeço antecipadamente!