Essencialmente, o que ele está fazendo é fornecer informações para o servidor ao qual está fazendo proxy. Em ordem:
-
X-Real-IP
- o servidor ao qual você está fazendo proxy será ver o sistema proxy nginx como o "IP do cliente" em qualquer tipo de lógica de aplicativo ou log que esteja fazendo, já que o serviço nginx é a origem da conexão TCP. Isso geralmente é inútil, especialmente em logs. O servidor de backend pode usar este cabeçalho em vez de seu IP de cliente normal para log ou outros usos onde precisa do IP do cliente. -
X-Forwarded-For
- este é um cabeçalho padrão-ish, que é semelhante aX-Real-IP
, mas fornece entradas de origem de conexão adicionais para toda a cadeia de proxies pelos quais a conexão passou. Pode ser um pouco mais de dor de cabeça para analisar e trabalhar com o servidor de back-end, pois provavelmente há várias entradas. -
Host
- Este é o mais provável de ser importante para o seu aplicativo. Normalmente, a solicitação que o nginx faz ao servidor de backend conterá em seu cabeçalhoHost
o endereço que você configurou (nesse caso,http://otherapp/
). Isso provavelmente não é desejado se estiver fazendo proxies para algo que faça hospedagem virtual baseada em nome ou algo que gere links com base no cabeçalho do host recebido. Essa configuração está fazendo com que o cabeçalhoHost
para o qual o cliente enviou nginx seja enviado para o backend (equivalente aoProxyPreserveHost
do Apache). -
X-NginX-Proxy
- Tudo isso está funcionando como um marcador que o proxy é usado. Provavelmente não é útil na maioria dos casos.