Essa linha é necessária para que funcione.
Sem ela, todas as requisições ainda mostram o IP do balanceador de carga.
Eu sei disso porque meu Discourse ficou fora do ar devido a erros 429.
Caso não esteja claro, esta é minha infraestrutura:
usuário > haproxy > discourse
O Discourse, é claro, inclui um proxy reverso nginx.
Eu incluí os cabeçalhos de encaminhamento no haproxy, mas o nginx interno do Discourse não estava respeitando o “forwarded for”. Tive que adicionar as 2 linhas na minha postagem original e reiniciar o container para que funcionasse.
Acho que não há uma variável de ambiente integrada para IPs de balanceadores de carga personalizados, pois o nginx não lê essas variáveis nativamente para o bloco server.
Além disso, se você editou manualmente a configuração do nginx dentro do container em execução, ela será apagada na próxima vez que você fizer o rebuild.
Acho que, para tornar a configuração permanente e fazê-la sobreviver aos rebuilds, você precisa usar o comando replace no seu app.yml (ou web_only.yml se for dual container) — role até o final do seu arquivo .yml até a seção run: e adicione este bloco. Isso instrui o construtor do Discourse a injetar automaticamente suas configurações de IP real após a abertura do bloco server {:
run:
- replace:
filename: /etc/nginx/conf.d/discourse.conf
from: /server.+{/
to: |
server {
set_real_ip_from 192.168.1.100; ## Substitua pelo IP/sub-rede real do seu balanceador de carga
real_ip_header X-Forwarded-For;
real_ip_recursive on;