Table des matières
le protocole proxy est appliqué dans nginx
Activer le protocole proxy dans nginx
Tout le monde. Le plus connu est le bloc http Dans nginx, il représente la prise en charge de http/https. Nginx prend en charge le protocole TCP/UDP. Cette fonction est implémentée via le module stream, que beaucoup de gens ne connaissent pas.
Si la version que vous utilisez actuellement ne le fait pas. avoir une vraie adresse IP, ne vous inquiétez pas, vous devrez peut-être compiler à partir du code source pour le moment.
Les paramètres de http et de stream sont différents.
Nous pouvons enregistrer les logs correspondants dans le bloc http et stream en utilisant la variable $proxy_protocol_addr, comme indiqué ci-dessous :
Maison Opération et maintenance Nginx Comment configurer et utiliser le protocole proxy dans nginx

Comment configurer et utiliser le protocole proxy dans nginx

May 18, 2023 am 08:47 AM
nginx proxy protocol

    le protocole proxy est appliqué dans nginx

    Nous savons que nginx est un serveur Web et un serveur proxy. Il fonctionne généralement derrière un serveur proxy ou un logiciel d'équilibrage de charge (Haproxy, Amazon Elastic Load Balancer (ELB)

    ). Tout d'abord, le client initie une requête au serveur proxy ou au logiciel d'équilibrage de charge, puis la requête sera transmise à nginx pour un accès réel au Web

    Parce qu'elle a traversé plusieurs couches de logiciel, certaines informations du client telles que. car l'adresse IP, le numéro de port, etc. peuvent être perdus. Le fait d'être masqué est préjudiciable à notre analyse des problèmes et à nos statistiques de données. Nous espérons obtenir la véritable adresse IP du client afin d'obtenir l'environnement de demande précis. Vous devez utiliser le protocole PROXY. Si le proxy ou LSB mentionné précédemment implémente le protocole PROXY, qu'il s'agisse du protocole HTTP, SSL, HTTP/2, SPDY, WebSocket ou TCP, nginx peut obtenir l'adresse IP d'origine du client et effectuer certaines tâches. les opérations basées sur l'adresse IP d'origine. Les opérations spéciales, telles que le blocage de l'accès à des adresses IP malveillantes, l'affichage de différentes langues ou pages en fonction de différentes adresses IP, ou une journalisation et des statistiques plus simples, sont toutes très efficaces

    Bien sûr, si vous le souhaitez. prend en charge le protocole PROXY, vous devez utiliser la version nginx. Il existe également des exigences spécifiques en matière de version :

    Si vous souhaitez prendre en charge le protocole PROXY v2, vous avez besoin de NGINX Plus R16 ou NGINX Open Source 1.13. 11.

    • Si vous souhaitez prendre en charge le protocole ROXY pour HTTP, vous avez besoin de NGINX Plus R3 ou NGINX Open Source 1.5.12

    • Pour prendre en charge le protocole PROXY côté client TCP, NGINX Plus R7 ou NGINX Open Source 1.9. .3 est requis.

    • Pour prendre en charge le protocole PROXY pour TCP, NGINX Plus R11 ou NGINX Open Source 1.11.4

    • Dans nginx, vous pouvez obtenir les informations client correspondantes via les variables suivantes, en particulier comme suit :

    • $proxy_protocol_addr et $proxy_protocol_port représentent respectivement l'adresse IP du client d'origine et le numéro de port

    $remote_addr et $remote_port représentent l'adresse IP et le port de l'équilibreur de charge

    Si vous utilisez le module d'extension RealIP, alors ceci. Le module réécrira les deux valeurs​​de $remote_addr et $remote_port. Il sera remplacé par l'adresse IP et le numéro de port du client d'origine.

    Utilisez ensuite $realip_remote_addr et $realip_remote_port pour représenter l'adresse IP et le port de l'équilibreur de charge.

    Dans le module d'extension RealIP, la signification de $proxy_protocol_addr et $proxy_protocol_port reste inchangée, qui est toujours l'adresse IP et le numéro de port du client d'origine.

    Configurer et utiliser le protocole proxy dans nginx

    Nous avons mentionné ci-dessus l'application de base du protocole proxy dans nginx. Parlons de la façon d'effectuer une configuration spécifique dans nginx.

    Activer le protocole proxy dans nginx

    Si votre nginx est déjà une version qui prend en charge le protocole proxy, alors l'activation du protocole proxy est très simple. Il vous suffit d'ajouter proxy_protocol à l'écoute sur le serveur, comme indiqué ci-dessous :

    http {
        #...
        server {
            listen 80   proxy_protocol;
            listen 443  ssl proxy_protocol;
            #...
        }
    }
       
    stream {
        #...
        server {
            listen 112233 proxy_protocol;
            #...
        }
    }
    Copier après la connexion

    Tout le monde. Le plus connu est le bloc http Dans nginx, il représente la prise en charge de http/https. Nginx prend en charge le protocole TCP/UDP. Cette fonction est implémentée via le module stream, que beaucoup de gens ne connaissent pas.

    Grâce à la configuration ci-dessus, nginx peut prendre en charge le protocole proxy dans le protocole tcp/udp et le protocole http/https.

    Utiliser les modules Real‑IP

    Les modules Real‑IP sont un module fourni avec nginx. Vous pouvez vérifier si nginx a un module real-ip installé en exécutant la commande suivante :

    nginx -V 2>&1 | grep -- 'http_realip_module'
    nginx -V 2>&1 | grep -- 'stream_realip_module'
    Copier après la connexion

    Si la version que vous utilisez actuellement ne le fait pas. avoir une vraie adresse IP, ne vous inquiétez pas, vous devrez peut-être compiler à partir du code source pour le moment.

    Pendant le processus de compilation, nous devons exécuter une commande configure. Dans cette commande configure, nous pouvons spécifier les fonctions à activer, telles que stream ou http_ssl_module :

    $ ./configure
    --sbin-path=/usr/local/nginx/nginx
    --conf-path=/usr/local/nginx/nginx.conf
    --pid-path=/usr/local/nginx/nginx.pid
    --with-pcre=../pcre-8.44
    --with-zlib=../zlib-1.2.11
    --with-http_ssl_module
    --with-stream
    --with-mail
    Copier après la connexion

    Si vous souhaitez activer la fonction real-ip, vous peut ajouter :

    --with-http_realip_module
    Copier après la connexion

    Si nginx s'exécute derrière SLB ou proxy, vous pouvez utiliser la commande set_real_ip_from pour spécifier la plage IP du proxy ou du serveur d'équilibrage de charge, comme indiqué ci-dessous :

    server {
        #...
        set_real_ip_from 192.168.1.0/24;
       #...
    }
    Copier après la connexion

    Ensuite, nous devons remplacer l'adresse IP de le proxy ou SLB avec l'adresse du vrai client, alors vous pouvez l'utiliser comme ceci :

    http {
        server {
            #...
            real_ip_header proxy_protocol;
          }
    }
    Copier après la connexion

    Redirection de demande

    Qu'il s'agisse de http ou d'un bloc de flux, vous pouvez rencontrer une situation où la demande est transmise à l'amont suivant. Pour l'amont, ils espèrent recevoir la véritable adresse IP du client, au lieu de l'adresse du proxy ou du slb, cela peut être résolu par les paramètres suivants :

    http {
        proxy_set_header X-Real-IP       $proxy_protocol_addr;
        proxy_set_header X-Forwarded-For $proxy_protocol_addr;
    }
    Copier après la connexion
    stream {
        server {
            listen 12345;
            proxy_pass example.com:12345;
            proxy_protocol on;
        }
    }
    Copier après la connexion

    Les paramètres de http et de stream sont différents.

    Logging

    Log est une fonction très importante. Elle est très utile pour localiser les problèmes et effectuer une analyse statistique des données. Bien sûr, ce dont nous avons besoin, c'est de la véritable adresse IP du client.

    Nous pouvons enregistrer les logs correspondants dans le bloc http et stream en utilisant la variable $proxy_protocol_addr, comme indiqué ci-dessous :

    http {
        #...
        log_format combined '$proxy_protocol_addr - $remote_user [$time_local] '
                            '"$request" $status $body_bytes_sent '
                            '"$http_referer" "$http_user_agent"';
    }
    Copier après la connexion
    stream {
        #...
        log_format basic '$proxy_protocol_addr - $remote_user [$time_local] '
                          '$protocol $status $bytes_sent $bytes_received '
                          '$session_time';
    }
    Copier après la connexion

    Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

    Déclaration de ce site Web
    Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

    Outils d'IA chauds

    Undresser.AI Undress

    Undresser.AI Undress

    Application basée sur l'IA pour créer des photos de nu réalistes

    AI Clothes Remover

    AI Clothes Remover

    Outil d'IA en ligne pour supprimer les vêtements des photos.

    Undress AI Tool

    Undress AI Tool

    Images de déshabillage gratuites

    Clothoff.io

    Clothoff.io

    Dissolvant de vêtements AI

    AI Hentai Generator

    AI Hentai Generator

    Générez AI Hentai gratuitement.

    Article chaud

    R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
    2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
    Repo: Comment relancer ses coéquipiers
    1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
    Hello Kitty Island Adventure: Comment obtenir des graines géantes
    4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
    Combien de temps faut-il pour battre Split Fiction?
    3 Il y a quelques semaines By DDD

    Outils chauds

    Bloc-notes++7.3.1

    Bloc-notes++7.3.1

    Éditeur de code facile à utiliser et gratuit

    SublimeText3 version chinoise

    SublimeText3 version chinoise

    Version chinoise, très simple à utiliser

    Envoyer Studio 13.0.1

    Envoyer Studio 13.0.1

    Puissant environnement de développement intégré PHP

    Dreamweaver CS6

    Dreamweaver CS6

    Outils de développement Web visuel

    SublimeText3 version Mac

    SublimeText3 version Mac

    Logiciel d'édition de code au niveau de Dieu (SublimeText3)

    Comment autoriser l'accès au réseau externe au serveur Tomcat Comment autoriser l'accès au réseau externe au serveur Tomcat Apr 21, 2024 am 07:22 AM

    Pour permettre au serveur Tomcat d'accéder au réseau externe, vous devez : modifier le fichier de configuration Tomcat pour autoriser les connexions externes. Ajoutez une règle de pare-feu pour autoriser l'accès au port du serveur Tomcat. Créez un enregistrement DNS pointant le nom de domaine vers l'adresse IP publique du serveur Tomcat. Facultatif : utilisez un proxy inverse pour améliorer la sécurité et les performances. Facultatif : configurez HTTPS pour une sécurité accrue.

    Comment exécuter thinkphp Comment exécuter thinkphp Apr 09, 2024 pm 05:39 PM

    Étapes pour exécuter ThinkPHP Framework localement : Téléchargez et décompressez ThinkPHP Framework dans un répertoire local. Créez un hôte virtuel (facultatif) pointant vers le répertoire racine ThinkPHP. Configurez les paramètres de connexion à la base de données. Démarrez le serveur Web. Initialisez l'application ThinkPHP. Accédez à l'URL de l'application ThinkPHP et exécutez-la.

    Quelles sont les commandes de démarrage et d'arrêt de nginx ? Quelles sont les commandes de démarrage et d'arrêt de nginx ? Apr 02, 2024 pm 08:45 PM

    Les commandes de démarrage et d'arrêt de Nginx sont respectivement nginx et nginx -s quit. La commande start démarre directement le serveur, tandis que la commande stop arrête le serveur en douceur, permettant ainsi de traiter toutes les requêtes en cours. Les autres signaux d'arrêt disponibles incluent l'arrêt et le rechargement.

    Bienvenue sur nginx !Comment le résoudre ? Bienvenue sur nginx !Comment le résoudre ? Apr 17, 2024 am 05:12 AM

    Pour résoudre l'erreur "Bienvenue sur nginx!", vous devez vérifier la configuration de l'hôte virtuel, activer l'hôte virtuel, recharger Nginx, si le fichier de configuration de l'hôte virtuel est introuvable, créer une page par défaut et recharger Nginx, puis le message d'erreur. disparaîtra et le site Web sera affiché normalement.

    Comment déployer le projet nodejs sur le serveur Comment déployer le projet nodejs sur le serveur Apr 21, 2024 am 04:40 AM

    Étapes de déploiement de serveur pour un projet Node.js : Préparez l'environnement de déploiement : obtenez l'accès au serveur, installez Node.js, configurez un référentiel Git. Créez l'application : utilisez npm run build pour générer du code et des dépendances déployables. Téléchargez le code sur le serveur : via Git ou File Transfer Protocol. Installer les dépendances : connectez-vous en SSH au serveur et installez les dépendances de l'application à l'aide de npm install. Démarrez l'application : utilisez une commande telle que node index.js pour démarrer l'application ou utilisez un gestionnaire de processus tel que pm2. Configurer un proxy inverse (facultatif) : utilisez un proxy inverse tel que Nginx ou Apache pour acheminer le trafic vers votre application

    Comment s'inscrire à phpmyadmin Comment s'inscrire à phpmyadmin Apr 07, 2024 pm 02:45 PM

    Pour vous inscrire à phpMyAdmin, vous devez d'abord créer un utilisateur MySQL et lui accorder des autorisations, puis télécharger, installer et configurer phpMyAdmin, et enfin vous connecter à phpMyAdmin pour gérer la base de données.

    Comment résoudre le problème de nginx lors de l'accès au site Web Comment résoudre le problème de nginx lors de l'accès au site Web Apr 02, 2024 pm 08:39 PM

    nginx apparaît lors de l'accès au site Web. Les raisons peuvent être : maintenance du serveur, serveur occupé, cache du navigateur, problèmes DNS, blocage du pare-feu, mauvaise configuration du site Web, problèmes de connexion réseau ou site Web en panne. Essayez les solutions suivantes : attendez la fin de la maintenance, visitez pendant les heures creuses, videz le cache de votre navigateur, videz votre cache DNS, désactivez le pare-feu ou le logiciel antivirus, contactez l'administrateur du site, vérifiez votre connexion réseau ou utilisez un moteur de recherche ou archive Web pour trouver une autre copie du site. Si le problème persiste, veuillez contacter l'administrateur du site.

    Comment communiquer entre les conteneurs Docker Comment communiquer entre les conteneurs Docker Apr 07, 2024 pm 06:24 PM

    Il existe cinq méthodes de communication de conteneur dans l'environnement Docker : réseau partagé, Docker Compose, proxy réseau, volume partagé et file d'attente de messages. En fonction de vos besoins d'isolation et de sécurité, choisissez la méthode de communication la plus appropriée, par exemple en utilisant Docker Compose pour simplifier les connexions ou en utilisant un proxy réseau pour augmenter l'isolation.

    See all articles