Eu tenho lutado com a pergunta acima por inúmeras horas e não consegui encontrar uma explicação para o comportamento neste site ou em qualquer outro site para esse assunto. Pode ser que eu esteja usando as consultas erradas. Esta é minha primeira pergunta sobre estouro de pilha, então seja gentil ;)
A configuração que estou usando:
Eu tenho um servidor atrás do meu roteador (que tem IP interno 192.168.2.254) e uso o encaminhamento de porta para encaminhar as portas públicas 80 e 443 para o meu servidor (ubuntu). Eu posso acessar esse servidor digitando seu IP público (digamos 80.81.82.83) ou indo para um domínio (digamos example.org) cujos registros A contêm o mesmo IP público ou digitando seu IP interno (digamos 192.168.2.1 ) quando na mesma rede. Eu uso o NGINX nesse servidor como um proxy reverso para delegar a solicitação aos aplicativos (web) apropriados no mesmo servidor. O roteador é o roteador padrão que recebi do meu provedor de internet.
Eu tenho dois clientes se conectando a esse servidor, o cliente A está na mesma rede que o servidor (digamos 192.168.2.2), enquanto o cliente B não está na mesma rede, mas em qualquer outro lugar do mundo (digamos 90.91.92.93).
Quando me conecto com o cliente B (ou seja, não na mesma rede) ao meu servidor (usando o IP público ou o nome de domínio) e verifico os logs de acesso NGINX para o IP do cliente (ou seja, $remote_addr) o endereço IP correto/esperado é mostrado: 90.91.92.93.
Agora a parte que não entendi:
Quando eu conecto com o cliente A (mesma rede do servidor) ao servidor usando o IP interno do servidor (192.168.2.1) os logs de acesso mostram o endereço IP correto/esperado do cliente: 192.168.2.2. Mas quando eu me conecto do mesmo cliente ao servidor usando o endereço IP público ou o nome de domínio, os logs de acesso NGINX mostram o endereço IP do roteador: 192.168.2.254.
Por que isso acontece? Dessa forma, não consigo logar (e agir) em quais clientes internos se conectam ao servidor.