Maison > développement back-end > tutoriel php > Utilisez nginx pour déployer plusieurs serveurs Web sur un serveur

Utilisez nginx pour déployer plusieurs serveurs Web sur un serveur

不言
Libérer: 2023-04-02 20:36:01
original
8414 Les gens l'ont consulté

Cet article présente principalement l'utilisation de nginx pour déployer plusieurs serveurs Web sur un seul serveur. Il a une certaine valeur de référence. Maintenant, je le partage avec vous. Les amis dans le besoin peuvent s'y référer

Avez-vous bricolé. avec ça récemment ? Cela m'a pris un peu de temps. J'ai d'abord pensé à faire ça car la façon dont le nœud démarre directement le serveur est un peu violente, car si le port 80 est occupé, il est vraiment occupé. port pour suspendre plusieurs serveurs Web. Vous ne pouvez le monter que sur plusieurs ports, et vous devez ajouter un autre port plus tard pour y accéder, ce qui est trop moche, j'ai donc fouillé et configuré une structure multiservice à l'aide de Nginx. De cette façon, différentes applications sont accessibles via différents noms de sous-domaines !

Structure approximative

Utilisez nginx pour déployer plusieurs serveurs Web sur un serveur

Essentiellement, nginx est responsable du transfert des demandes entrantes, et la base du transfert est de juger différents noms de sous-domaines

ÉTAPE 1 Installer Nginx

La première étape consiste bien entendu à installer nginx. Chaque plateforme est différente et ne peut pas être partagée. Mon propre environnement Ubuntu

apt-get n'est pas tout nginx

ÉTAPE 2 Définir DNS ET PORT

Allez dans votre gestionnaire de nom de domaine pour attribuer le nom de sous-domaine que vous souhaitez, bien sûr, ce sont tous des enregistrements A et résolus sur votre IP publique VPS

Une autre préparation consiste à modifier les ports de tous vos NodeWebServers. Vous pouvez les définir selon vos préférences, mais n'occupez pas les ports 80 et 443

ÉTAPE 3 nginx config Node.js

Basculez vers votre

répertoire de configuration nginx

Emplacement de mon répertoire

/etc/ nginx/
Il convient de noter ici que nginx dispose d'un mécanisme d'inclusion. Il chargera automatiquement tous les _.conf_ dans le répertoire conf.d (sous la configuration par défaut), nous n'avons donc pas besoin de modifier le fichier nginx.conf. . Nous devons ensuite créer une série de fichiers de configuration dans le répertoire conf.d. Veuillez utiliser le nom de votre projet correspondant pour le nom de fichier, tel que

project1.conf

Sinon, veuillez l'ajouter. le manuellement

        include /etc/nginx/conf.d/*.conf;
        # include /etc/nginx/sites-enabled/*; // 最好给他注释了 默认页面没啥用
Copier après la connexion
Commencer à écrire la configuration du projet

cd conf.d
touch project1.conf

vim project1.conf

Écrivons des règles de transfert détaillées

// 这是一个NODE Web Server
// 我已经将这个服务的端口改成了8000端口
// 当nginx捕获到访问域名为api.yinode.tech的时候
// 就会转发到本地的8000端口
server{
    server_name api.yinode.tech;
    listen 80;
    location / {
        # proxy_http_version 1.1;
        proxy_set_header Connection "";
        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:8000$request_uri;
        proxy_redirect off;
    }
}
Copier après la connexion
Si vous devez transférer HTTPS, veuillez copier et coller le contenu ci-dessus ci-dessous, changez le port d'écoute en 443 et le port de transfert est le port https sur lequel vous écoutez !

ÉTAPE 4 nginx config PHP

Les paramètres de transfert de php seront légèrement différents, (par défaut vous avez déjà installé PHP)

server {
  listen 80;
  root /var/www/longqiyoutian/wordpress; // 你的根目录
  index index.php;
  server_name dragon.yinode.tech;
  error_page 404 /404.html;
  location ~ \.php$ {
    try_files $uri = 404;
    fastcgi_pass unix:/var/run/php/php7.0-fpm.sock; // 你的fpm地址
    fastcgi_index index.php;
    include fastcgi_params;
    fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name; // 必须填写,注意顺序
  }
}
Copier après la connexion
Expliquez-les un par un , d'abord, nous Le répertoire racine deviendra important. Nginx transmettra ce répertoire à FPM pour exécuter le code PHP, alors ne vous trompez pas. Deuxièmement, le transfert ultérieur doit être ajouté

Cela peut guider FPM pour effectuer un épissage d'adresse correct. fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

CONSEILS : Rappel
L'utilisateur de démarrage par défaut de nginx et FPM est www-data, alors assurez-vous de changer le propriétaire du répertoire racine de votre site Web en www-data, et ne placez pas ceci dans le répertoire /root/, il y aura des problèmes d'autorisation. Il est préférable de le copier dans le répertoire /var/www et de définir le propriétaire !

ÉTAPE 5 Répéter

Répétez les étapes 3 et 4 pour créer toutes les configurations de projet dont vous avez besoin

ÉTAPE 6 Redémarrez nginx

redémarrage du service nginx
Si une erreur se produit, vérifiez attentivement les informations et effectuez une recherche en ligne. C'est généralement parce que le format du fichier de configuration est incorrect.

ÉTAPE 7 Exécuter

Ouvrez votre site Web, il devrait fonctionner normalement ! En fait, si vous ajoutez un nouveau serveur à l'avenir, il vous suffit d'ajouter un fichier de configuration correspondant, qui peut être facilement étendu horizontalement, et l'ensemble du site Web sera plus beau à visiter !

Ce qui précède représente l'intégralité du contenu de cet article. J'espère qu'il sera utile à l'étude de chacun. Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois !

Recommandations associées :

Nginx définit un nom de domaine non lié pour interdire l'accès

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:php.cn
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