Maison > Opération et maintenance > Nginx > Comment implémenter le transfert multi-domaine nginx

Comment implémenter le transfert multi-domaine nginx

WBOY
Libérer: 2023-05-13 12:58:20
avant
2187 Les gens l'ont consulté

Concept de base

DNS

DNS est l'abréviation de Domain Name System, qui est le système de noms de domaine. DNS est un service sur Internet, généralement appelé service de noms de domaine ou service de résolution de noms de domaine. Il fournit principalement des services de conversion de noms de domaine et d'adresses IP de sites Web.

Correspondance entre noms de domaine et IP

Il existe une correspondance biunivoque entre les noms de domaine et les adresses IP, mais plusieurs noms de domaine peuvent correspondre à la même adresse IP. Tout comme la relation entre le nom d'une personne et son numéro d'identification, il est évidemment beaucoup plus facile de se souvenir du nom d'une personne que de son numéro d'identification. Une adresse IP est une adresse numérique qui identifie le site d'un utilisateur sur Internet. Pour faciliter la mémorisation, les noms de domaine sont utilisés à la place des adresses IP pour représenter les adresses de site. DNS résout les noms de domaine en adresses IP afin qu'elles correspondent. .

Comment fonctionne le DNS

Sur Internet, un nom de domaine nécessite une résolution de nom de domaine « faisant autorité » fournie par deux serveurs de noms de domaine. S'il s'agit d'un nom de domaine international, l'autorité d'enregistrement du nom de domaine est Interinc. S'il s'agit d'un nom de domaine national, l'autorité d'enregistrement du nom de domaine est CNNIC. Tous les noms de domaine doivent être enregistrés auprès de deux agences d'enregistrement afin d'être utilisés normalement.

Par exemple, si vous souhaitez visiter un site Web maintenant, tel que www.baidu.com, votre ordinateur doit connaître l'adresse IP de ce site avant de pouvoir y accéder. Il enverra donc automatiquement une requête au serveur « master DNS » de votre région, c'est-à-dire quelle est l'adresse IP de « www.baidu.com » ? S'il n'y a aucun enregistrement du nom de domaine sur le serveur, il ira au DNS de niveau supérieur pour rechercher et répéter jusqu'à ce qu'il soit trouvé s'il n'est toujours pas trouvé au dernier niveau. À ce stade, il effectuera une recherche sur le DNS faisant autorité, puis renverra les informations IP correspondantes à votre ordinateur. Votre ordinateur peut communiquer avec le serveur correspondant à www.baidu.com. De telles requêtes niveau par niveau sont appelées requêtes « récursives ».

fichier hosts

Le fichier hosts est un fichier système local sans suffixe et nécessite des droits d'administrateur pour modifier son contenu. Comme le montre le processus de résolution DNS ci-dessus, chaque résolution DNS peut être transmise par de nombreux serveurs DNS avant que la véritable adresse IP ne soit finalement obtenue, ce qui est très inefficace. Il existe donc également un fichier de résolution DNS localement sur l'ordinateur, c'est-à-dire le fichier hosts. Lorsque vous pointez www.baidu.com dans les hôtes vers l'adresse correcte du serveur Baidu, l'ordinateur interagira avec le bon serveur. Si les hôtes locaux n'ont pas de relation de mappage configurée, il ira au serveur DNS sur le réseau local pour trouver la relation de mappage correspondante. S'il n'existe toujours pas, il le recherchera dans le DNS du nœud local correspondant et répétera les étapes mentionnées ci-dessus.

nginx reverse proxy

Proxy : Il s'agit en fait d'un intermédiaire A et B qui auraient pu être directement connectés, mais C a été ajouté entre A et B. Le proxy direct

est le DNS ci-dessus. Il agit comme un proxy pour le client, envoie et reçoit des requêtes pour le client et est transparent pour le serveur. Lorsque j'utilise un navigateur pour accéder à http://www.google.com, celui-ci est brutalement bloqué. Vous pouvez donc configurer un serveur proxy à l'étranger et demander au proxy de m'aider à demander google.com. Le proxy renverra la structure correspondante. retourné par la demande. Donnez-moi.

Comment implémenter le transfert multi-domaine nginx

Proxy inversé

est une fonction de nginx. Il agit comme un proxy pour le serveur et est transparent pour le client. Lorsque nous demandons www.baidu.com, c'est comme si nous composions le 10086. Il peut y avoir des milliers de serveurs qui nous servent en coulisses, mais vous ne savez pas de lequel il s'agit, et vous n'avez pas besoin de le savoir. savoir. Il importe simplement de savoir qui est le serveur proxy inverse. www.baidu.com est notre serveur proxy inverse. Le serveur proxy inverse nous aidera à transmettre la demande au serveur réel. Nginx est un serveur proxy inverse avec de très bonnes performances, utilisé pour l'équilibrage de charge.

Comment implémenter le transfert multi-domaine nginx

des hôtes nginx plus pour effectuer plusieurs mappages de noms de domaine

Par exemple, les noms de domaine de vos deux applications sont a.test.com et b.test.com.

Recherchez le fichier hosts dans le répertoire C:WindowsSystem32driversetc et ouvrez-le avec les privilèges de super-administrateur. Ajoutez

a.test.com 127.0.0.1
b.test.com 127.0.0.1
Copier après la connexion

à la fin du fichier et modifiez le fichier nginx.conf (puisque nginx.conf a de nombreuses configurations, voici juste l'exemple le plus simple) et ajoutez le serveur à l'intérieur du {} de http. Ajoutez le contenu suivant :

server {
  listen 80;
  server_name a.test.com;   //填入自己项目对应的域名
  charset utf-8;
  error_log logs/error.log;
  location / {
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header Host $http_host;
    proxy_set_header X-NginX-Proxy true;
    proxy_pass http://127.0.0.1:8888; //填入自己项目的ip加端口号(此处的项目没有工程上下文,只有端口号)
  }
}

server {
  listen 80;
  server_name b.test.com;   //填入自己项目对应的域名
  charset utf-8;
  error_log logs/error.log;
  location / {
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header Host $http_host;
    proxy_set_header X-NginX-Proxy true;
    proxy_pass http://127.0.0.1:8889; //填入自己项目的ip加端口号(此处的项目没有工程上下文,只有端口号)
  }
}
Copier après la connexion

Après modification, rechargez le fichier de configuration nginx

nginx.exe -s reload
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!

É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