Certaines de nos interfaces impliquent des modifications des informations utilisateur, et ces interfaces ne permettent que la partie d’accès de nous ajuster, donc nous avons une liste blanche IP sur nginx.
Il est équipé de l’IP de sortie de la partie accèse.
Voici les journaux de notre accès nginx.
nginx prend notre $remote_addr comme véritable IP, mais en réalité, $http_X_Forwarded_For est la véritable IP de l’utilisateur, $remote_addr est simplement l’adresse réseau privée de notre f5 (utilisateur -->f5 --> nginx), ce qui fait que nginx prend le mauvais nom et que l’utilisateur ajuste l’interface est toujours 403.
Solution:
Dans le module http plus
set_real_ip_from 10.10.10.122 ; Dis à nginx de prendre la valeur de RealIP à partir de là
real_ip_header X-Real-IP ; Le nom de la variable qui stocke la valeur RealIP
Pouvoir!
Voici que nous commençons le rapport nginx après avoir ajouté :
nginx: [emerg] unknown directive "set_real_ip_from" in /home/lnidmp/nginx/conf/nginx.conf:26
Nous ajoutons donc le module realip et recompilons nginx
1、cd /usr/local/nginx-1.6.3 2、./configure --préfixe=/usr/cmcc/nginx --avec-http_stub_status_module--avec-http_ssl_module --avec-http_realip_module 3. Faire & installer
Conseils :
1. set_real_ip_from fait référence à l’IP réelle de l’utilisateur obtenue à partir de laquelle un pré-proxy fiable
2. real_ip_header fait référence à l’IP utilisateur de la transmission proxy précédente à partir de laquelle la partie HTTP du message reçu est obtenue
3. real_ip_recursive S’il faut exclure récursivement jusqu’à ce que l’IP utilisateur soit obtenue (par défaut désactivé)
Premièrement, real_ip_header spécifier un nom d’en-tête http, qui est par défaut X-Real-IP.
(1) S’il y a 1 IP, il vérifiera si l’IP de l’expéditeur se trouve dans la liste IP de confiance spécifiée par le set_real_ip_from. S’il est digne de confiance, il pensera que la valeur IP dans cette X-Real-IP est la valeur réelle IP de l’utilisateur indiquée par l’agent précédent, il assignera donc cette valeur à sa propre variable $remote_addr ; Si elle n’est pas fiable, elle ne sera pas traitée, et $remote_addr reste l’adresse IP de l’expéditeur.
(2) Si X-Real-Ip a plusieurs valeurs IP, par exemple, le proxy précédent est défini ainsi : proxy_set_header X-Real-Ip $proxy_add_x_forwarded_for ;
Ce que vous obtenez, c’est une chaîne d’IP, donc la valeur de real_ip_recursive est cruciale pour le moment. nginx comparera les IP de la liste de confiance set_real_ip_from de droite à gauche dans la liste IP. Si la real_ip_recursive est décalée, alors lorsque l’IP la plus à droite est reconnue comme une IP de confiance, on pense que la prochaine IP (la seconde à droite) est la véritable IP de l’utilisateur. Si le real_ip_recursive est activé, il sera comparé de droite à gauche jusqu’à ce qu’il trouve une IP non fiable. Ensuite, copiez aussi la valeur IP dans $remote_addr.
Ressources:
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
|