Algumas de nossas interfaces envolvem mudanças nas informações do usuário, e essas interfaces só permitem que a parte de acesso nos ajuste, então temos uma lista branca de IP no nginx.
Ele é equipado com o IP de saída da parte de acesso.
Aqui estão os logs do nosso acesso nginx.
nginx assume nosso $remote_addr como IP real, mas na verdade, $http_X_Forwarded_For é o IP real do usuário, $remote_addr é apenas o endereço de rede privada do nosso f5 (usuário -->f5 --> nginx), resultando em nginx adotar o nome errado e o usuário ajustando a interface ser sempre 403.
Solução:
No módulo http plus
set_real_ip_from 10.10.10.122; Diga ao nginx para obter o valor do RealIP de lá
real_ip_header X-Real-IP; O nome da variável que armazena o valor RealIP
Poder!
Aqui começamos o relatório nginx após acrescentar:
nginx: [emerg] unknown directive "set_real_ip_from" in /home/lnidmp/nginx/conf/nginx.conf:26
Então adicionamos o módulo realip e recompilamos nginx
1、CD/USR/LOCAL/NGINX-1.6.3 2、./configure --prefix=/usr/cmcc/nginx --com-http_stub_status_module --com-http_ssl_module --com-http_realip_module 3、Fazer &&instalar
Dicas:
1. set_real_ip_from refere-se ao IP real do usuário obtido do qual o pré-proxy confiável
2. real_ip_header refere-se ao IP do usuário da transmissão proxy anterior da qual a parte HTTP da mensagem recebida é obtida
3. real_ip_recursive Se excluir recursivamente até que o IP do usuário seja obtido (o padrão está desligado)
Primeiro, real_ip_header especificar um nome de cabeçalho http, que é X-Real-IP por padrão.
(1) Se houver 1 IP, ele verificará se o IP do remetente está na lista de IPs confiáveis especificada pelo set_real_ip_from. Se for confiável, ele pensará que o valor IP nesse X-Real-IP é o valor real do IP do usuário informado pelo agente anterior, então ele atribuirá esse valor à sua própria variável $remote_addr; Se não for confiável, não será processado, e $remote_addr ainda é o endereço IP do remetente.
(2) Se X-Real-Ip tem múltiplos valores de IP, por exemplo, o proxy anterior é definido assim: proxy_set_header X-Real-Ip $proxy_add_x_forwarded_for;
O que você obtém é uma sequência de IPs, então o valor de real_ip_recursive é crucial neste momento. Nginx comparará os IPs na lista de confiança set_real_ip_from da direita para a esquerda na lista de IPs. Se o real_ip_recursive estiver desligado, então, quando o IP mais à direita for encontrado como um IP confiável, pensa-se que o próximo IP (o segundo à direita) é o IP real do usuário. Se o real_ip_recursive estiver ligado, ele será comparado da direita para a esquerda até encontrar um IP não confiável. Depois, copie o valor do IP para $remote_addr também.
Recursos:
https://help.aliyun.com/document_detail/54007.html
https://help.aliyun.com/knowledge_detail/55198.html
https://www.linux178.com/web/nginx-get-realip.html
|