Maison > Opération et maintenance > Nginx > le corps du texte

Méthode de configuration d'initialisation Nginx

WBOY
Libérer: 2023-05-19 15:22:42
avant
1717 Les gens l'ont consulté

Concepts de base

nginx est le plus couramment utilisé pour fournir des services de proxy inverse, alors qu'est-ce qu'un proxy inverse ? Je crois que de nombreux compatriotes du continent ont utilisé le proxy direct dans ce pays magique. Le principe est à peu près le suivant :

Méthode de configuration dinitialisation Nginx

Le serveur proxy agit comme intermédiaire côté client pour accepter les demandes, masquer le vrai client et obtenir le demande de la ressource du serveur. Si le serveur proxy se trouve à l'extérieur de la Grande Muraille, il peut également nous aider à atteindre l'objectif de traverser la Grande Muraille. Comme son nom l'indique, le proxy inverse consiste à utiliser le serveur proxy comme intermédiaire pour le serveur, en masquant le serveur qui fournit réellement les services. Le principe est à peu près le suivant :

Méthode de configuration dinitialisation Nginx

Bien sûr, il ne s'agit pas d'atteindre l'objectif. de traverser la Grande Muraille, mais pour parvenir à la sécurité, à l'équilibrage de charge et à une série de fonctions. La soi-disant sécurité signifie que la demande du client ne sera pas transmise directement au serveur intranet mais sera transmise via un proxy. Au niveau de cette couche, une série de stratégies telles que le filtrage de sécurité, le contrôle de flux et la prévention DDoS peuvent être mises en œuvre. L'équilibrage de charge signifie que nous pouvons augmenter horizontalement le nombre de serveurs qui fournissent réellement des services sur le backend. L'agent transmet les requêtes à chaque serveur selon des règles, de sorte que la charge de chaque serveur soit presque équilibrée.

Et nginx est un service de proxy inverse très populaire.

Sous Ubuntu, vous pouvez ignorer le processus de compilation et d'installation et directement apt-get

Copiez le code Le code est le suivant :

sudo apt-get install nginx

Après l'installation, vous pouvez directement utiliser :

Copiez le code Le code est le suivant :

sudo service nginx start

pour démarrer le service nginx, nginx a le port 80 transféré par défaut. Nous pouvons le vérifier en visitant http://locallhost dans le navigateur.

Configuration initiale

Le fichier de configuration par défaut de nginx se trouve dans

Copier le code Le code est le suivant :

/etc/nginx/nginx.conf

La meilleure façon d'apprendre la configuration est de commencer par des exemples, ne les regardons pas d'abord. Pour les autres configurations, veuillez vous référer directement à la configuration liée à la page par défaut de nginx. Il y a une ligne dans le fichier de configuration :

Copy code Le code est le suivant :

include /etc/nginx/sites-enabled/*

Cette ligne charge un fichier de configuration externe, et il n'y a qu'un seul fichier par défaut ; sous le fichier de dossier compatible avec les sites, ce fichier de configuration externe est responsable du proxy par défaut de notre nginx. Après avoir réduit le contenu de la configuration, vous obtenez les lignes suivantes :

Copy code Le code est le suivant :


server {
server_name localhost;
Listen 80 default_server;
Listen [::]:80 default_server ipv6only=on;

root / usr/share/nginx/html;
index index.html index.htm;

location / {
try_files $uri $uri/ =404;
}
}

Un grand site Web a généralement de nombreux sites subordonnés , chacun possède son propre serveur fournissant les services correspondants. Dans nginx, nous pouvons isoler ces différentes configurations de services grâce à un concept appelé hôte virtuel. C'est la signification de serveur dans la configuration ci-dessus. Par exemple, Google propose deux produits : traduction et académique. Nous pouvons configurer deux serveurs dans le fichier de configuration nginx. Les noms de serveur sont respectivement traduire.google.com et Scholar.google.com. De cette manière, différentes requêtes URL correspondront. aux paramètres correspondants de nginx et transmis à différents serveurs back-end. Le nom du serveur correspond ici à la ligne hôte dans la requête http du client.

Dans cet exemple, server_name est localhost, c'est pourquoi nous pouvons accéder à la configuration de la page via localhost dans le navigateur. Les deux écoutes suivantes correspondent respectivement aux ports d'écoute sous ipv4 et ipv6. Si elles sont définies sur 8080, nous ne pouvons accéder à la page par défaut que via localhost:8080.

default_server signifie que s'il existe d'autres paramètres d'hôte de requête http qui n'existent pas dans nginx, alors la configuration de ce serveur sera utilisée. Par exemple, si nous accédons à 127.0.0.1, il reviendra également à ce serveur pour traitement.

Chaque requête d'url correspondra à un service, que nginx traitera et transmettra, soit un chemin de fichier local, soit un chemin de service d'autres serveurs. La correspondance de ce chemin s'effectue via la localisation. On peut considérer le serveur comme la configuration correspondant à un nom de domaine, et l'emplacement comme la configuration d'un chemin plus granulaire sous un nom de domaine.

Toutes les requêtes commençant par une correspondance d'emplacement /, c'est-à-dire /xxx ou /yyy sous localhost, doivent passer par la configuration suivante. En plus de cette correspondance simple et grossière, nginx prend également en charge l'égalité régulière et exacte et d'autres méthodes de correspondance fine. Et tryfiles signifie que nginx accédera aux fichiers dans l'ordre suivant et renverra le premier correspondant. Par exemple, si vous demandez localhost/test, il recherchera le fichier /test s'il ne le trouve pas, il recherchera /test/. S'il ne le trouve pas, il renverra un 404. De plus, nous pouvons également utiliser proxypass dans la configuration de l'emplacement pour implémenter le proxy inverse et l'équilibrage de charge, mais cette configuration la plus simple n'implique pas

où root fait référence à l'utilisation d'un dossier local comme chemin racine pour toutes les requêtes d'URL. Par exemple, si l'utilisateur demande un localhost/test, nginx recherchera le fichier de test dans le dossier /usr/share/nginx/html et le renverra.

Et index est la page d'accès par défaut. Lorsque nous accédons à localhost, il recherchera automatiquement index.html et index.htm dans l'ordre dans le chemin du fichier racine et renverra le premier résultat trouvé.

Configuration avancée de l'emplacement
La configuration ci-dessus mappe uniquement l'URL de l'utilisateur aux fichiers locaux et n'implémente pas le légendaire proxy inverse et l'équilibrage de charge (bien sûr, nginx est également très puissant pour distribuer des fichiers statiques), comme suit Allons plus loin configurez l'emplacement pour voir comment l'implémenter.

C'est très simple à configurer. Par exemple, si je souhaite transférer toutes les requêtes vers le port 8080 d'une machine qui fournit effectivement des services, il suffit de faire ceci :

Copiez le code Le code est le suivant :

emplacement / {
proxy_pass 123.34.56.67:8080 ;
}

De cette façon, toutes les requêtes seront des proxy inverses vers 123.34.56.67. De cette façon, notre fonction de proxy inverse a été implémentée, mais comment peut-il y avoir un équilibrage de charge si nous pouvons proxy vers un serveur ? Cela nécessite le module amont de nginx.

Copier le code Le code est le suivant :


backend en amont {
ip_hash;
serveur backend1.example.com;
serveur backend2.example.com;
serveur backend3.example.com;
serveur backend4.example. com ;
}
location / {
  proxy_pass http://backend;
}

Nous avons spécifié un groupe de machines en amont et nommé ce groupe backend, de sorte que dans proxypass nous n'ayons besoin que de transférer la requête vers le backend en amont . Implémentation d'un proxy inverse et d'un équilibrage de charge sur quatre machines. L'iphash indique que notre méthode équilibrée consiste à allouer en fonction de l'adresse IP de l'utilisateur.

Pour que la configuration prenne effet, nous n'avons pas besoin de redémarrer nginx, il suffit de recharger la configuration.

Copiez le code Le code est le suivant :

sudo service nginx reload

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!

Étiquettes associées:
source:yisu.com
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!