Analyse d'exemples de fonctions de base de Nginx
1. Serveur http statique
Tout d'abord, nginx est un serveur http qui peut afficher des fichiers statiques (tels que du HTML et des images) sur le serveur via le protocole http au client. Configuration :
server { listen 80; # 端口号 location / { root /usr/share/nginx/html; # 静态文件路径 } }
2. Serveur proxy inverse
Qu'est-ce qu'un proxy inverse ?
Le client peut accéder directement à un serveur d'applications de site Web via le protocole http. L'administrateur du site Web peut ajouter un nginx au milieu. Le client demande nginx, nginx demande au serveur d'applications, puis renvoie le résultat au serveur d'applications. client. , nginx est actuellement le serveur proxy inverse.
Configuration :
server { listen 80; location / { proxy_pass http://192.168.20.1:8080; # 应用服务器http地址 } }
Puisque le serveur est accessible directement via http, pourquoi devrions-nous ajouter un proxy inverse dans le au milieu ? Non Est-ce inutile ? À quoi sert un proxy inverse ?
Continuez à regarder vers le bas. L'équilibrage de charge, l'hôte virtuel, etc. suivants sont tous basés sur le proxy inverse. Bien entendu, les fonctions du proxy inverse ne sont pas les seules.
3. Équilibrage de charge
Lorsque le trafic du site Web est très important, alors que le webmaster est heureux de gagner de l'argent, il est également en difficulté . Comme le site Web devient de plus en plus lent, un seul serveur ne suffit plus.
Ainsi, la même application est déployée sur plusieurs serveurs, et les requêtes d'un grand nombre d'utilisateurs sont distribuées sur plusieurs machines pour être traitées. Dans le même temps, l'avantage est que si l'un des serveurs tombe en panne, tant que les autres serveurs fonctionnent normalement, cela n'affectera pas l'utilisation de l'utilisateur. nginx peut réaliser un équilibrage de charge via un proxy inverse.
Configuration :
upstream myapp { server 192.168.20.1:8080; # 应用服务器1 server 192.168.20.2:8080; # 应用服务器2 } server { listen 80; location / { proxy_pass http://myapp; } }
La configuration ci-dessus attribuera l'interrogation des requêtes au serveur d'applications, c'est-à-dire plusieurs fois pour un Les demandes des clients peuvent être traitées par plusieurs serveurs différents. Vous pouvez utiliser ip-hash pour attribuer des requêtes à un serveur fixe pour traitement en fonction de la valeur de hachage de l'adresse IP du client.
Configuration :
upstream myapp { ip_hash; # 根据客户端ip地址hash值将请求分配给固定的一个服务器处理 server 192.168.20.1:8080; server 192.168.20.2:8080; } server { listen 80; location / { proxy_pass http://myapp; } }
De plus, la configuration matérielle du serveur peut être bonne ou mauvaise. Je souhaite attribuer la plupart des requêtes aux bons serveurs et un petit nombre de requêtes aux bons. serveurs médiocres, qui peuvent être contrôlés par le poids.
Configuration :
upstream myapp { server 192.168.20.1:8080 weight=3; # 该服务器处理3/4请求 server 192.168.20.2:8080; # weight默认为1,该服务器处理1/4请求 } server { listen 80; location / { proxy_pass http://myapp; } }
4 Hôte virtuel
Certains sites internet ont un grand nombre de visites et nécessitent une charge. équilibrage. Cependant, tous les sites Web ne sont pas aussi performants. Certains sites Web doivent réaliser des économies en déployant plusieurs sites Web sur le même serveur en raison du faible nombre de visites.
Par exemple, deux sites Web www.aaa.com et www.bbb.com sont déployés sur le même serveur. Les deux noms de domaine renvoient à la même adresse IP, mais les utilisateurs peuvent les ouvrir via les deux. noms de domaine. Deux sites Web complètement différents ne s’influencent pas, tout comme l’accès à deux serveurs, c’est pourquoi ils sont appelés deux hôtes virtuels.
Configuration :
server { listen 80 default_server; server_name _; return 444; # 过滤其他域名的请求,返回444状态码 } server { listen 80; server_name www.aaa.com; # www.aaa.com域名 location / { proxy_pass http://localhost:8080; # 对应端口号8080 } } server { listen 80; server_name www.bbb.com; # www.bbb.com域名 location / { proxy_pass http://localhost:8081; # 对应端口号8081 } }
Une application est ouverte sur les serveurs 8080 et 8081 respectivement. Le client accède via différents noms de domaine et peut inverser le proxy vers le serveur d'application correspondant en fonction du nom du serveur. .
Le principe de l'hôte virtuel est réalisé selon que l'hôte dans l'en-tête de la requête http correspond au nom du serveur. Les étudiants intéressés peuvent étudier le protocole http.
De plus, la configuration server_name peut également filtrer quelqu'un qui pointe de manière malveillante certains noms de domaine vers votre serveur hôte.
5, fastcgi
nginx lui-même ne prend pas en charge les langages tels que php, mais il peut lancer des requêtes vers certaines langues ou frameworks via le traitement fastcgi (par exemple php, python, perl).
server { listen 80; location ~ \.php$ { include fastcgi_params; fastcgi_param script_filename /php文件路径$fastcgi_script_name; # php文件路径 fastcgi_pass 127.0.0.1:9000; # php-fpm地址和端口号 # 另一种方式:fastcgi_pass unix:/var/run/php5-fpm.sock; } }
Dans la configuration, les requêtes se terminant par .php sont transmises à php-fpm pour traitement via fashcgi. php-fpm est un gestionnaire fastcgi pour PHP. Vous pouvez vérifier d'autres informations sur fashcgi, qui ne seront pas présentées dans cet article.
Quelle est la différence entre fastcgi_pass et proxy_pass ? L'image suivante vous aidera à comprendre :
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

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

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)

Comment configurer un nom de domaine NGINX sur un serveur cloud: Créez un enregistrement A pointant vers l'adresse IP publique du serveur cloud. Ajoutez des blocs d'hôtes virtuels dans le fichier de configuration Nginx, en spécifiant le port d'écoute, le nom de domaine et le répertoire racine du site Web. Redémarrez Nginx pour appliquer les modifications. Accéder à la configuration du test de nom de domaine. Autres notes: Installez le certificat SSL pour activer HTTPS, assurez-vous que le pare-feu autorise le trafic Port 80 et attendez que la résolution DNS prenne effet.

Les méthodes qui peuvent interroger la version Nginx sont: utilisez la commande nginx -v; Afficher la directive de version dans le fichier nginx.conf; Ouvrez la page d'erreur Nginx et affichez le titre de la page.

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

Le démarrage d'un serveur Nginx nécessite différentes étapes en fonction des différents systèmes d'exploitation: Système Linux / Unix: Installez le package NGINX (par exemple, en utilisant Apt-Get ou Yum). Utilisez SystemCTL pour démarrer un service NGINX (par exemple, sudo systemctl start nginx). Système Windows: téléchargez et installez les fichiers binaires Windows. Démarrer Nginx à l'aide de l'exécutable Nginx.exe (par exemple, nginx.exe -c conf \ nginx.conf). Peu importe le système d'exploitation que vous utilisez, vous pouvez accéder au serveur IP

Vous pouvez interroger le nom du conteneur Docker en suivant les étapes: répertorier tous les conteneurs (Docker PS). Filtrez la liste des conteneurs (à l'aide de la commande grep). Obtient le nom du conteneur (situé dans la colonne "Noms").

Étapes de démarrage du conteneur Docker: Tirez l'image du conteneur: Exécutez "Docker Pull [Mirror Name]". Créer un conteneur: utilisez "Docker Create [Options] [Mirror Name] [Commandes et paramètres]". Démarrez le conteneur: exécutez "docker start [nom de conteneur ou id]". Vérifiez l'état du conteneur: vérifiez que le conteneur s'exécute avec "Docker PS".

Pour faire en sorte que Nginx exécute Apache, vous devez: 1. Installez Nginx et Apache; 2. Configurer l'agent Nginx; 3. Démarrer Nginx et Apache; 4. Testez la configuration pour vous assurer que vous pouvez voir le contenu Apache après avoir accédé au nom de domaine. De plus, vous devez faire attention à d'autres questions telles que la correspondance du numéro de port, la configuration de l'hôte virtuel et les paramètres SSL / TLS.
