Cet article est un article miroir de traduction automatique, veuillez cliquer ici pour accéder à l’article original.

Vue: 15060|Répondre: 0

[Web] Le nginx front-end et le serveur nginx back-end enregistrent l’adresse IP du client d’origine

[Copié le lien]
Publié sur 03/11/2014 09:53:23 | | |

Ce module nous permet de modifier la valeur de l’adresse IP client dans l’en-tête de requête client (par exemple, X-Real-IP ou X-Forwarded-For).

    Cette fonctionnalité est très utile pour les serveurs Nginx si Nginx fonctionne derrière certains proxys d’équilibrage de charge de couche 7, car l’IP locale de la requête client (c’est-à-dire l’adresse de requête du client) est ajoutée à l’en-tête de l’adresse IP du client lors du passage par le proxy de couche 7, permettant au Nginx backend d’obtenir la valeur de l’adresse IP du client. Le module n’est pas installé par défaut, donc si vous voulez utiliser le module, vous devez ajouter l’option --with-http_realip_module lors de la compilation de l’installation.

    La raison d’utiliser ce module est qu’il permet au serveur en arrière-plan d’enregistrer l’adresse IP du client d’origine.

Exemple de configuration
set_real_ip_from 192.168.1.0/24 ;
set_real_ip_from 192.168.2.1 ;
real_ip_header X-Real-IP ;


Doigts    Commande

   Le module ne fournit que deux instructions.

Nom de l’instruction : set_real_ip_from

Fonction : La spécification d’une adresse de confiance via cette commande sera remplacée par une adresse IP exacte. Les sockets Unix de confiance peuvent également être utilisés à partir de la version 0.8.22. L’IP défini ici fait référence à la frontendNginxVernisouCalamardeIPAdresse.

Syntaxe : set_real_ip_from [l’adresse| CIDR|" unix :"]

Valeur par défaut : aucune

Environnement d’utilisation : http, serveur, emplacement

Nom de l’instruction : real_ip_header

Fonction : Cette commande sert à définir quel en-tête remplacer l’adresse IP. Si X-Forwarded-For est utilisé, le module remplacera l’adresse IP du proxy front-end par la dernière adresse IP de l’en-tête X-Forwarded-For.

Syntaxe : real_ip_header [X-Real-IP| X-Avancé]

Valeur par défaut : real_ip_header X-Real-IP

Environnement d’utilisation : http, serveur, emplacement

Cas d’utilisation   

    Dans l’exemple suivant, notre environnement est le suivant : il y a deux serveurs Nginx, l’un est le frontend et l’autre le backend, le Nginx frontend est utilisé comme proxy, et le backend Nginx sert à fournir l’accès aux pages, et il y a aussi un client avec l’adresse IP suivante :

  

    Nginx frontend : 192.168.7.10

    Nginx backend : 192.168.1.15

    Hôte client : 218.239.201.36

    La configuration Nginx sur le frontend ressemble à ceci :

server {
  écouter 80 ;
  server_name www.xx.com ;

Emplacement / {
    racine HTML ;
    index index.html index.htm ;
Charset UTF-8 ;
  }

Emplacement /865 {
    proxy_pass http://192.168.3.139:80/ ;
    proxy_set_header X-Real-IP $remote_addr ;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for ;
proxy_set_header Hôte $host ;
    proxy_redirect off ;
  }

……
}

La configuration Nginx pour le backend est la suivante :

server {
  écouter 80 ;
  server_name localhost ;

  Emplacement / {
    racine /var/www/html ;
    index index.html index.htm ;
  }

Accédez au test

    Si nous accédons à la http://www.xx.com/865, pas de problème, cela peut être un accès normal, le journal d’accès est le suivant :

    Journaux du frontend Nginx :

218.239.201.36 - - [30/Aoû/2011:16:09:56 +0800] « GET /865/ HTTP/1.1 » 200 151 « - » « Mozilla/5.0 (Windows ; U; Windows NT 5.1 ; en-US ; rv :1.9.2.12) Gecko/20101026 Firefox/3.6.12 GTB7.1"

Journaux du backend Nginx :

192.168.7.10 - - [30/Aoû/2011:16:09:56 +0800] « GET // HTTP/1.0 » 200 151 « - » « Mozilla/5.0 (Windows ; U; Windows NT 5.1 ; en-US ; rv :1.9.2.12) Gecko/20101026 Firefox/3.6.12 GTB7.1"

Nous voyons que les journaux Nginx backend n’enregistrent pas l’adresse IP du client d’origine, mais celle du Nginx frontend.

    Si vous modifiez la configuration du serveur Nginx en arrière-plan pour :

server {
  écouter 80 ;
  server_name localhost ;
  set_real_ip_from 192.168.3.0/24 ;
set_real_ip_from 100.100.0.0/16 ;
  real_ip_header X-Real-IP ;

  Emplacement / {
    racine HTML ;
    index index.html index.htm ;
  }

    ……
}

Ensuite, nous refaisons le test d’accès :

    Journaux du frontend Nginx :

218.239.201.36 - - [30/Août/2011:16:10:28 +0800 « GET /865/ HTTP/1.1 » 304 0 « - » « Mozilla/5.0 (Windows ; U; Windows NT 5.1 ; en-US ; rv :1.9.2.12) Gecko/20101026 Firefox/3.6.12 GTB7.1"

     Journaux du backend Nginx :

218.239.201.36 - - [30/Août/2011:16:10:28 +0800] « GET // HTTP/1.0 » 304 0 « - » « Mozilla/5.0 (Windows ; U; Windows NT 5.1 ; en-US ; rv :1.9.2.12) Gecko/20101026 Firefox/3.6.12 GTB7.1"

On peut voir que cette fois, l’arrière-plan enregistre l’adresse IP du client.







Précédent:Mode proxy nginx, obtenir l’adresse IP réelle du client
Prochain:Disculpez ! X3.1 Toutes les versions de X3 contournent l’autorisation de téléchargement des pièces jointes sans crédits Vulnérabilité du téléchargement illimité
Démenti:
Tous les logiciels, supports de programmation ou articles publiés par Code Farmer Network sont uniquement destinés à l’apprentissage et à la recherche ; Le contenu ci-dessus ne doit pas être utilisé à des fins commerciales ou illégales, sinon les utilisateurs assumeront toutes les conséquences. Les informations sur ce site proviennent d’Internet, et les litiges de droits d’auteur n’ont rien à voir avec ce site. Vous devez supprimer complètement le contenu ci-dessus de votre ordinateur dans les 24 heures suivant le téléchargement. Si vous aimez le programme, merci de soutenir un logiciel authentique, d’acheter l’immatriculation et d’obtenir de meilleurs services authentiques. En cas d’infraction, veuillez nous contacter par e-mail.

Mail To:help@itsvse.com