Comment configurer et utiliser le protocole proxy dans nginx
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 valeursde $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; #... } }
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'
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
Si vous souhaitez activer la fonction real-ip, vous peut ajouter :
--with-http_realip_module
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; #... }
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; } }
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; }
stream { server { listen 12345; proxy_pass example.com:12345; proxy_protocol on; } }
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"'; }
stream { #... log_format basic '$proxy_protocol_addr - $remote_user [$time_local] ' '$protocol $status $bytes_sent $bytes_received ' '$session_time'; }
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!

Outils d'IA chauds

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

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

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

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

Sujets chauds

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.

É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.

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.

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.

É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

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.

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.

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.
