Esse commit corrigiu um erro de configuração no qual você estava dependendo, mas que também poderia permitir que qualquer usuário final falsificasse seu endereço IP definindo esse cabeçalho.
Na verdade, existe uma maneira mais fácil que não exige o uso de um soquete — acabei de escrever um guia sobre como fazer isso.
Para sua configuração @CLOUD_PHT, você deve adicionar isso à definição do seu container (se já existir uma seção run, adicione essas diretivas a ela; caso contrário, adicione a seção run):
run:
- file:
path: /etc/nginx/conf.d/outlets/server/real-ip-header.conf
chmod: 644
contents: |
real_ip_header x-forwarded-for;
- file:
path: /etc/nginx/conf.d/outlets/server/set-real-ip-from-host.conf
chmod: 644
contents: |
set_real_ip_from 172.17.0.1;
Você talvez também precise do seguinte:
- file:
# precisamos ativar a recursividade, pois teremos pelo menos duas entradas: uma do host e outra do CloudFlare
path: /etc/nginx/conf.d/outlets/server/real-ip-recursive.conf
chmod: 644
contents: |
real_ip_recursive on;
dependendo se o nginx executado no seu servidor está processando o cabeçalho do Cloudflare para determinar o IP real do usuário final (o que é recomendado) ou apenas adicionando o seu próprio por cima. Consulte https://meta.discourse.org/t/handling-the-chain-of-trust-of-the-end-users-real-ip/406372#p-2001772-more-than-one-proxy-7 para mais detalhes.
Outros leitores: estejam cientes de que essa diretiva
run:
- file:
path: /etc/nginx/conf.d/outlets/server/set-real-ip-from-host.conf
chmod: 644
contents: |
set_real_ip_from 172.17.0.1;
não é apropriada para todas as configurações. Faça isso apenas se todas as conexões com o container Discourse a partir desse IP forem confiáveis.
Especificamente, um problema conhecido em configurações IPv6 é que as conexões IPv6 com o servidor são encaminhadas pelo Docker via IPv4 — a maneira como isso é feito faz com que todas as conexões pareçam vir do endereço IP docker0 do host. Se você aplicar a diretiva acima à sua configuração, permitirá que todos os usuários conectados via IPv6 falsifiquem seu endereço IP à vontade.