Maison  >  Article  >  développement back-end  >  Utiliser Nginx pour implémenter un hôte virtuel sous Centos7.2

Utiliser Nginx pour implémenter un hôte virtuel sous Centos7.2

小云云
小云云original
2018-03-05 11:33:474405parcourir

1. Avant-propos

Tout d'abord, vous devez vous assurer que Nginx a été correctement installé sur votre système Linux. Bien sûr, si Nginx n'est pas installé, veuillez vous référer à
.
Environnement système :
Environnement Linux : centos-7.2
Environnement Nginx : nginx-1.9.9

2. À propos de Nginx
Nginx est un serveur http/proxy inverse hautes performances. serveur et serveur proxy de messagerie (IMAP/POP3). Développé par le programmeur russe Igor Sysoev, le test officiel de nginx peut prendre en charge 50 000 connexions simultanées, consomme très peu de CPU, de mémoire et d'autres ressources, et fonctionne de manière très stable. Open source et gratuit.


3. Que pouvez-vous faire avec Nginx ?
1. Serveur http : Nginx est un service http qui peut fournir des services http de manière indépendante. Peut être utilisé comme serveur Web statique.
2. Hôte virtuel : plusieurs sites Web peuvent être virtualisés sur un seul serveur. Par exemple, un hôte virtuel utilisé par un site Web personnel.
3. Proxy inverse/équilibrage de charge : lorsque le nombre de visites sur le site Web atteint un certain niveau et qu'un seul serveur ne peut pas satisfaire les demandes des utilisateurs, plusieurs clusters de serveurs sont nécessaires et nginx peut être utilisé comme proxy inverse. Et plusieurs serveurs peuvent partager la charge de manière égale, et il n'y aura pas de temps d'arrêt dû à une charge élevée sur un certain serveur et un certain serveur ne sera pas inactif.


4. Utilisez Nginx pour implémenter un hôte virtuel
Ici, nous devons savoir pourquoi nous devons créer un hôte virtuel. Dans l'environnement de production réel, notre activité est accessible via le réseau public.
Lorsque je construis un serveur cloud, un serveur cloud correspond à une IP publique, donc l'IP publique est une ressource très rare pour les entreprises ordinaires
Pour certaines grandes entreprises, comme BAT, cela n'a peut-être pas d'importance.
Ainsi, utiliser Nginx pour implémenter un hôte virtuel ici peut exécuter plusieurs sites Web sur le même service sans interférer les uns avec les autres.


Le même serveur peut avoir une IP et le site Web doit utiliser le port 80, mais le nom de domaine du site Web est différent.
Il existe trois façons de distinguer différents sites Web :

1 Service HTTP
2) Implémenter une machine virtuelle
1) Machine virtuelle basée sur IP
2) Port-. Machine virtuelle basée
3) Machine virtuelle basée sur le nom de domaine
3. Proxy inverse, équilibrage de charge

5. Hôtes virtuels différenciés par IP

Lier plusieurs sur une IP de serveur. adresse.
Méthode 1 :
Utilisez les outils de configuration réseau standard (tels que les commandes ifconfig et route) pour ajouter un alias IP,

Entrez la commande "ifconfig" pour afficher la configuration IP actuelle, comme indiqué ci-dessous :


Liez une autre adresse IP à la carte réseau ens33 : 192.168.78.142 et nommez la carte réseau ens33:1

/sbin/ifconfig ens33:1 192.168.78.142 broadcast 192.168.78.255 netmask 255.255.255.0 up
/sbin/route add -host 192.168.78.142 dev ens33:1

Une fois la carte réseau virtuelle créée, comme indiqué ci-dessous :



Méthode 2 :
1. /etc/sysconfig/network-scripts/ Copiez le fichier ifcfg-ens33,

et entrez dans le répertoire, entrez la commande "cp ifcfg-ens33 ifcfg-ens33:1 -r" et nommez-le ifcfg -ens33:1, comme indiqué ci-dessous :


2 Modifiez le fichier de configuration, entrez la commande "vi ifcfg-ens33:1", modifiez le contenu suivant. ,

NAME=ens33:1
DEVICE=ens33:1
IPADDR=192.168.78.142

Pas besoin de modifier d'autres éléments, une fois la modification terminée, comme indiqué ci-dessous :


Une fois la création terminée , testez si la nouvelle adresse IP est liée avec succès, entrez la commande "ping 192.168.78.142" dans la fenêtre DOS », comme indiqué ci-dessous :


Remarque : Le L'adresse IP liée à l'aide de la première méthode sera automatiquement dissociée après le redémarrage du système et devra être à nouveau liée, la deuxième méthode est permanente. Il s'agit d'une conclusion pratique.
3. Redémarrez le système.
Entrez la commande "reboot". Redémarrez le système puis entrez la commande "ifconfig". Vous pouvez voir qu'une nouvelle carte réseau est créée normalement
Comme indiqué ci-dessous :

6. nginx implémente la machine virtuelle

1) Configurer l'hôte virtuel nginx en fonction de l'adresse IP
Préparez deux HTML qui identifient nginx pour une différenciation facile pendant testing : Allez dans le répertoire /usr/local/nginx, copiez le html en deux exemplaires,

et modifiez le contenu de index.html ci-dessous C'est plus simple donc je ne l'écrirai pas ici. Si vous ne le savez pas, veuillez laisser un message. Ou envoyer un message privé, comme indiqué ci-dessous :


Modifiez le fichier de configuration nginx et entrez la commande " vi conf/nginx.config"

Copie de Convenience Reader, j'ai supprimé les inutiles ici, le contenu est le suivant :

    server {
        listen       80;
        server_name  192.168.78.141;




        location / {
            root   html-141;
            index  index.html index.htm;
        }


    }


    server {
        listen       80;
        server_name  192.168.78.142;




        location / {
            root   html-142;
            index  index.html index.htm;
        }


    }

Comme indiqué ci-dessous :


测试nginx 虚拟主机是否可以正常访问,

测试 192.168.78.141 虚拟主机,如下图:




测试 192.168.78.142 虚拟主机,如下图:




2)、配置 nginx 基于端口的虚拟主机
还是老规矩,准备两个标识 nginx 的 HTML,用于在测试时好区别:进入到 /usr/local/nginx 目录下,将 html 分别复制两份,

在修改下面 index.html 的内容,这儿较简单就不在写了,如果不知道请留言或私信,如下图:


修改 nginx 的配置文件,输入命令 “ vi conf/nginx.config ”

方便读者的复制,内容如下:

server {
        listen       81;
        server_name  192.168.78.141;




        location / {
            root   html-81;
            index  index.html index.htm;
        }


    }


    server {
        listen       82;
        server_name  192.168.78.141;




        location / {
            root   html-82;
            index  index.html index.htm;
        }


    }

如下图所示:


重启Nginx 后,测试nginx 虚拟主机是否可以正常访问,

测试 81端口的 虚拟主机,如下图:


测试 82端口的 虚拟主机,如下图:





3)、基于域名的虚拟主机
基于域名的虚拟主机是最有用的虚拟主机配置方式。
即一个域名只能绑定一个ip地址,一个ip地址可以被多个域名绑定。


实现基于域名的虚拟主机,在这儿还需要修改 Linux 的 HostName,当然还可以通过 这个工具进行修改 ,对于互联网开发的人来说,经常变更 host 必不可免。每次我们都一遍一遍的去修改hosts文件真是很累,如果能更快速的修改成不同hosts,这儿为大家推荐一个好用的软件 SwitchHosts ,轻松一键切换。

以管理员身份打开,然后就可以设置域名和ip的映射关系,新增一个本地解决方案,键入如下内容,

192.168.78.141 www.12345.com
192.168.78.141 register.12345.com
192.168.78.141 login.12345.com

如下图:




注:修改window的hosts文件:(C:\Windows\System32\drivers\etc)


基于 Nginx 域名的虚拟主机配置,修改内容如下图:


    server {
        listen       80;
        server_name  www.12345.com;




        location / {
            root   html;
            index  index.html index.htm;
        }


    }




    server {
        listen       80;
        server_name  register.12345.com;




        location / {
            root   html-81;
            index  index.html index.htm;
        }


    }


    server {
        listen       80;
        server_name  login.12345.com;




        location / {
            root   html-82;
            index  index.html index.htm;
        }


    }

如下图所示:



修改配置文件后,需要 nginx 重新加载配置文件。

测试 www.12345.com,如下图:


测试 register.12345.com,如下图:


测试 login.12345.com,如下图:


相关推荐:

win10 apache配置虚拟主机后localhost无法使用

详解Linux虚拟主机相关问题

关于php之Apache配置虚拟主机

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