Maison Opération et maintenance Nginx Nginx proxy_pass analyse d'un exemple de configuration de proxy inverse

Nginx proxy_pass analyse d'un exemple de configuration de proxy inverse

May 13, 2023 pm 11:19 PM
nginx proxy_pass

Ce qui suit est un petit exemple :

Il n'y a pas de package RPM nginx dans la bibliothèque système centos7 par défaut, nous devons donc d'abord mettre à jour la bibliothèque de dépendances RPM

1) Utiliser yum pour installer nginx nécessite d'inclure le nginx bibliothèque, installez la bibliothèque nginx

[root@localhost ~]# rpm -uvh http://nginx.org/packages/centos/7/noarch/rpms/nginx-release-centos-7-0.el7.ngx.noarch.rpm
Copier après la connexion

2) Utilisez la commande suivante pour installer nginx

[root@localhost ~]# yum install nginx
Copier après la connexion

3) Configuration nginx

[root@localhost ~]# cd /etc/nginx/conf.d/
[root@localhost conf.d]# cat test.conf
server {
listen 80;
server_name localhost;
location / {
root /var/www/html;
index index.html;
}
}
 
[root@localhost conf.d]# cat /var/www/html/index.html
this is page of test!!!!
Copier après la connexion

4) Démarrez nginx

[root@localhost ~]# service nginx start //或者使用 systemctl start nginx.service
Copier après la connexion

5) Test d'accès (103.110.186.23 est le 192.1 68 .1.23 IP du réseau externe de la machine)

[root@localhost conf.d]# curl http://192.168.1.23
this is page of test!!!!
Copier après la connexion

Regardez les situations suivantes : utilisez http://192.168.1.23/proxy/index.html pour effectuer des tests d'accès

Pour faciliter les tests, utilisez d'abord une autre machine 192.168 .1.5 Déployez un nginx sur le port 8090, la configuration est la suivante :

[root@bastion-idc ~]# cat /usr/local/nginx/conf/vhosts/haha.conf
server {
listen 8090;
server_name localhost;
location / {
root /var/www/html;
index index.html;
}
}
[root@bastion-idc ~]# cat /var/www/html/index.html
this is 192.168.1.5
[root@bastion-idc ~]# /usr/local/nginx/sbin/nginx -s reload
Copier après la connexion

Test d'accès (103.110.186.5 est l'IP du réseau externe de 192.168.1.5) : sert de nginx reverse proxy machine, nginx La configuration est la suivante :

nginx proxy_pass反向代理配置实例分析1) Le premier cas :

[root@bastion-idc ~]# curl http://192.168.1.5:8090
this is 192.168.1.5
Copier après la connexion

De cette façon, l'accès à http://192.168.1.23/proxy/ sera proxy vers http://192.168 .1.5:8090/. Le répertoire proxy correspondant à p n'a pas besoin d'exister dans le répertoire racine /var/www/html

Notez que si vous accédez à http://192.168.1.23/proxy dans le terminal (c'est-à-dire sans "/" après ), l'accès échouera ! Parce que "/" est ajouté après l'url configurée par proxy_pass

[root@localhost conf.d]# cat test.conf
server {
listen 80;
server_name localhost;
location / {
root /var/www/html;
index index.html;
}
 
location /proxy/ {
 proxy_pass http://192.168.1.5:8090/;
}
}
Copier après la connexion

Lorsque la page accède à http://103.110.186.23/proxy, "/" sera automatiquement ajouté (la même raison est que "/" est ajouté après l'url configuré par proxy_pass ), et inverser le résultat de http://103.110.186.5:8090


2) Dans le deuxième cas, si "/" n'est pas ajouté après l'url configuré par proxy_pass

[root@localhost conf.d]# curl http://192.168.1.23/proxy/
this is 192.168.1.5
[root@localhost conf.d]# curl http://192.168.1.23/proxy
<html>
<head><title>301 moved permanently</title></head>
<body bgcolor="white">
<center><h1>301 moved permanently</h1></center>
<hr><center>nginx/1.10.3</center>
</body>
</html>
Copier après la connexion

alors visitez http://192.168.1.23/proxy ou http://192.168.1.23/proxy/ échouera !

Après cette configuration, l'accès à http://192.168.1.23/proxy/ sera inversé par proxy vers http://192.168.1.5:8090/proxy/nginx proxy_pass反向代理配置实例分析


3) La troisième situation

[root@localhost conf.d]# cat test.conf
server {
listen 80;
server_name localhost;
location / {
root /var/www/html;
index index.html;
}
 
location /proxy/ {
 proxy_pass http://192.168.1.5:8090;
}
}
[root@localhost conf.d]# service nginx restart
redirecting to /bin/systemctl restart nginx.service
Copier après la connexion

Si configuré comme ceci, visitez http://103.110.186.23/proxy pour proxy vers http://192.168.1.5:8090/haha/

nginx proxy_pass反向代理配置实例分析

4) La quatrième situation : relative à l'URL de la troisième configuration Sans ajouter "/"

[root@localhost conf.d]# cat test.conf
server {
listen 80;
server_name localhost;
location / {
root /var/www/html;
index index.html;
}
 
location /proxy/ {
 proxy_pass http://192.168.1.5:8090/haha/;
}
}
[root@localhost conf.d]# service nginx restart
redirecting to /bin/systemctl restart nginx.service
[root@localhost conf.d]# curl http://192.168.1.23/proxy/
192.168.1.5 haha-index.html
Copier après la connexion

Après la configuration ci-dessus, l'accès à http://192.168.1.23/proxy/index.html sera un proxy vers http://192.168.1.5:8090/hahaindex.html

De même, l'accès à http : //192.168.1.23/proxy/test.html sera proxy vers http://192.168.1.5:8090/hahatest.html

[root@localhost conf.d]# cat test.conf
server {
listen 80;
server_name localhost;
location / {
root /var/www/html;
index index.html;
}
 
location /proxy/ {
 proxy_pass http://192.168.1.5:8090/haha;
}
}
[root@localhost conf.d]# service nginx restart
redirecting to /bin/systemctl restart nginx.service
[root@localhost conf.d]# curl http://192.168.1.23/proxy/index.html
192.168.1.5 hahaindex.html
Copier après la connexion
nginx proxy_pass反向代理配置实例分析Notez que dans ce cas, http://192.168 n'est pas accessible directement 1.23/. proxy/, même le fichier index.html par défaut doit suivre, sinon l'accès échouera !



-------------------------------------------- ------ ---------------------------------------------

Les quatre ci-dessus les méthodes correspondent toutes Ajoutez "/" après le chemin. Parlons de la situation sans "/" après le chemin :

1) Dans le premier cas, l'url après proxy_pass a "/" :

[root@localhost conf.d]# curl http://192.168.1.23/proxy/index.html
192.168.1.5 hahaindex.html
Copier après la connexion
nginx proxy_pass反向代理配置实例分析


2 ) Dans le deuxième cas, si l'url après proxy_pass ne contient pas "/"

[root@localhost conf.d]# cat test.conf
server {
listen 80;
server_name localhost;
location / {
root /var/www/html;
index index.html;
}
 
location /proxy {
 proxy_pass http://192.168.1.5:8090/;
}
}
[root@localhost conf.d]# service nginx restart
redirecting to /bin/systemctl restart nginx.service
Copier après la connexion
nginx proxy_pass反向代理配置实例分析, si configuré comme ceci, accéder à http://103.110.186.23/proxy ajoutera automatiquement "/" (c'est-à-dire il deviendra http://103.110.186.23/ proxy/), proxy vers 192.168.1.5:8090/proxy/

nginx proxy_pass反向代理配置实例分析

3) Le troisième cas

[root@localhost conf.d]# cat test.conf
server {
listen 80;
server_name localhost;
location / {
root /var/www/html;
index index.html;
}
 
location /proxy {
 proxy_pass http://192.168.1.5:8090;
}
}
[root@localhost conf.d]# service nginx restart
redirecting to /bin/systemctl restart nginx.service
[root@localhost conf.d]#
Copier après la connexion

Si configuré de cette manière, accéder à http://103.110 .186.23/proxy ajoutera automatiquement "/" (c'est-à-dire qu'il devient http://103.110.186.23/proxy/), proxy vers http://192.168.1.5:8090/haha/

nginx proxy_pass反向代理配置实例分析

4) Le quatrième situation : Par rapport à la troisième configuration, l'URL n'est pas Ajouter "/"

[root@localhost conf.d]# cat test.conf
server {
listen 80;
server_name localhost;
location / {
root /var/www/html;
index index.html;
}
 
location /proxy {
 proxy_pass http://192.168.1.5:8090/haha/;
}
}
[root@localhost conf.d]# service nginx restart
redirecting to /bin/systemctl restart nginx.service
Copier après la connexion

Si configurée comme ceci, accédez à http://103.110.186.23/proxy Comme le troisième résultat, elle sera également proxy vers. http://192.168.1.5:8090/haha/nginx proxy_pass反向代理配置实例分析

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)
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Commandes de chat et comment les utiliser
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌

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 vérifier si Nginx est démarré Comment vérifier si Nginx est démarré Apr 14, 2025 pm 01:03 PM

Comment confirmer si Nginx est démarré: 1. Utilisez la ligne de commande: SystemCTl Status Nginx (Linux / Unix), netStat -ano | Findstr 80 (Windows); 2. Vérifiez si le port 80 est ouvert; 3. Vérifiez le message de démarrage NGINX dans le journal système; 4. Utilisez des outils tiers, tels que Nagios, Zabbix et Icinga.

Comment démarrer Nginx dans Linux Comment démarrer Nginx dans Linux Apr 14, 2025 pm 12:51 PM

Étapes pour démarrer Nginx dans Linux: Vérifiez si Nginx est installé. Utilisez SystemCTL Start Nginx pour démarrer le service NGINX. Utilisez SystemCTL Activer Nginx pour activer le démarrage automatique de Nginx au démarrage du système. Utilisez SystemCTL Status Nginx pour vérifier que le démarrage est réussi. Visitez http: // localhost dans un navigateur Web pour afficher la page de bienvenue par défaut.

Comment vérifier si Nginx est démarré? Comment vérifier si Nginx est démarré? Apr 14, 2025 pm 12:48 PM

Dans Linux, utilisez la commande suivante pour vérifier si Nginx est démarré: SystemCTL Status Nginx Juges Basé sur la sortie de la commande: si "Active: Active (Running)" s'affiche, Nginx est démarré. Si "Active: Inactive (Dead)" est affiché, Nginx est arrêté.

Comment configurer Nginx dans Windows Comment configurer Nginx dans Windows Apr 14, 2025 pm 12:57 PM

Comment configurer Nginx dans Windows? Installez Nginx et créez une configuration d'hôte virtuelle. Modifiez le fichier de configuration principale et incluez la configuration de l'hôte virtuel. Démarrer ou recharger nginx. Testez la configuration et affichez le site Web. Activer sélectivement SSL et configurer les certificats SSL. Définissez sélectivement le pare-feu pour permettre le trafic Port 80 et 443.

Comment résoudre nginx403 Comment résoudre nginx403 Apr 14, 2025 am 10:33 AM

Comment corriger l'erreur interdite Nginx 403? Vérifier les autorisations de fichier ou de répertoire; 2. Vérifier le fichier .htaccess; 3. Vérifiez le fichier de configuration NGINX; 4. Redémarrer Nginx. D'autres causes possibles incluent les règles de pare-feu, les paramètres de Selinux ou les problèmes d'application.

Comment résoudre le problème du domaine croisé nginx Comment résoudre le problème du domaine croisé nginx Apr 14, 2025 am 10:15 AM

Il existe deux façons de résoudre le problème du domaine transversal NGINX: modifiez les en-têtes de réponse transversale: ajoutez des directives pour autoriser les demandes de domaine croisé, spécifier des méthodes et des en-têtes autorisés et définir le temps du cache. Utilisez le module CORS: Activez les modules et configurez les règles CORS pour permettre des demandes, des méthodes, des en-têtes et du temps de cache.

Comment définir l'adresse d'accès Nginx sur IP de serveur Comment définir l'adresse d'accès Nginx sur IP de serveur Apr 14, 2025 am 11:36 AM

Pour définir l'adresse d'accès sur Server IP dans Nginx, configurez le bloc de serveur, définissez l'adresse d'écoute (telle que l'écoute 192.168.1.10:80) Définissez le nom du serveur (tel que server_name example.com www.example.com), ou laissez-le vide pour accéder au serveur IP et reload nginx pour appliquer les modifications

Comment vérifier l'état de course de Nginx Comment vérifier l'état de course de Nginx Apr 14, 2025 am 11:48 AM

Les méthodes pour afficher l'état en cours d'exécution de Nginx sont: utilisez la commande PS pour afficher l'état du processus; Afficher le fichier de configuration Nginx /etc/nginx/nginx.conf; Utilisez le module d'état NGINX pour activer le point de terminaison d'état; Utilisez des outils de surveillance tels que Prometheus, Zabbix ou Nagios.

See all articles