Heim  >  Artikel  >  Backend-Entwicklung  >  Verwenden von Nginx zur Implementierung eines virtuellen Hosts unter Centos7.2

Verwenden von Nginx zur Implementierung eines virtuellen Hosts unter Centos7.2

小云云
小云云Original
2018-03-05 11:33:474395Durchsuche

1. Vorwort

Zunächst müssen Sie sicherstellen, dass Nginx korrekt in Ihrem Linux-System installiert wurde. Wenn Nginx nicht installiert ist, lesen Sie bitte

Systemumgebung:
Linux-Umgebung: Centos-7.2
Nginx-Umgebung: Nginx-1.9.9

2. Über Nginx
Nginx ist ein leistungsstarker http-Server/Reverse-Proxy Server und E-Mail-Proxyserver (IMAP/POP3). Der vom russischen Programmierer Igor Sysoev entwickelte offizielle Test von Nginx kann 50.000 gleichzeitige Verbindungen unterstützen, verbraucht nur sehr wenig Ressourcen wie CPU und Speicher und läuft sehr stabil. Open Source und kostenlos.


3. Was kann man mit Nginx machen?
1. http-Server: Nginx ist ein http-Dienst, der http-Dienste unabhängig bereitstellen kann. Kann als statischer Webserver verwendet werden.
2. Virtueller Host: Mehrere Websites können auf einem Server virtualisiert werden. Zum Beispiel ein virtueller Host, der von einer persönlichen Website verwendet wird.
3. Reverse-Proxy/Lastausgleich: Wenn die Anzahl der Besuche auf der Website ein bestimmtes Niveau erreicht und ein einzelner Server Benutzeranforderungen nicht erfüllen kann, sind mehrere Server-Cluster erforderlich und Nginx kann als Reverse-Proxy verwendet werden. Und mehrere Server können die Last gleichmäßig verteilen, und es kommt nicht zu Ausfallzeiten aufgrund einer hohen Auslastung eines bestimmten Servers und ein bestimmter Server wird nicht inaktiv sein.


4. Verwenden Sie Nginx, um einen virtuellen Host zu implementieren.
Hier müssen wir wissen, warum wir einen virtuellen Host erstellen müssen. In der tatsächlichen Produktionsumgebung erfolgt der Zugriff auf unser Unternehmen.
Wenn ich einen Cloud-Server baue, entspricht ein Cloud-Server einer öffentlichen IP, sodass öffentliche IP-Adressen für normale Unternehmen eine sehr knappe Ressource sind.
Für einige große Unternehmen wie BAT spielt dies möglicherweise keine Rolle.
Wenn Sie hier also Nginx zur Implementierung eines virtuellen Hosts verwenden, können mehrere Websites auf demselben Dienst ausgeführt werden, ohne sich gegenseitig zu stören.


Derselbe Server hat möglicherweise eine IP und die Website muss Port 80 verwenden, aber der Domänenname der Website ist unterschiedlich.
Es gibt drei Möglichkeiten, verschiedene Websites zu unterscheiden:

1. Virtuelle Maschine implementieren
1) IP-basierte virtuelle Maschine
2) Port- basierte virtuelle Maschine
3) Domänenname-basierte virtuelle Maschine
3. Reverse-Proxy, Lastausgleich

5. Binden Sie mehrere auf einer Server-IP Adresse.

Methode 1:

Verwenden Sie Standard-Netzwerkkonfigurationstools (z. B. ifconfig- und Route-Befehle), um einen IP-Alias ​​hinzuzufügen.



Geben Sie den Befehl „ifconfig“ ein, um die aktuelle IP-Konfiguration anzuzeigen. wie unten gezeigt:

Binden Sie eine weitere IP an die ens33-Netzwerkkarte: 192.168.78.142 und nennen Sie die Netzwerkkarte ens33:1



Nachdem die virtuelle Netzwerkkarte erstellt wurde, wie unten gezeigt:

/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


Methode 2:

1 /etc/sysconfig/network-scripts/ Kopieren Sie die Datei ifcfg-ens33,



gehen Sie in das Verzeichnis, geben Sie den Befehl „cp ifcfg-ens33 ifcfg-ens33:1 -r“ ein und nennen Sie ihn ifcfg -ens33:1, wie unten gezeigt:

2. Ändern Sie die Konfigurationsdatei, geben Sie den Befehl „vi ifcfg-ens33:1“ ein und ändern Sie den folgenden Inhalt ,

Andere Elemente müssen nicht geändert werden, nachdem die Änderung abgeschlossen ist, wie unten gezeigt:

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

Nachdem die Erstellung abgeschlossen ist , testen Sie, ob die neue IP erfolgreich gebunden wurde, geben Sie im DOS-Fenster den Befehl „ping 192.168.78.142“ ein, wie unten gezeigt:

Hinweis: Die Die mit Methode eins gebundene IP wird nach dem Neustart des Systems automatisch aufgehoben und muss erneut gebunden werden. Methode zwei ist dauerhaft. Dies ist eine praktische Schlussfolgerung.
3. Starten Sie das System neu.

Geben Sie den Befehl „reboot“ ein. Sie können sehen, dass eine neue Netzwerkkarte erstellt wird.





6. Nginx implementiert eine virtuelle Maschine
1) Konfigurieren Sie den virtuellen Nginx-Host basierend auf der IP-Adresse

Bereiten Sie zwei HTML-Dateien vor, die Nginx zur einfachen Unterscheidung identifizieren Testen: Gehen Sie in das Verzeichnis /usr/local/nginx, kopieren Sie den HTML-Code in zwei Kopien,

und ändern Sie den Inhalt von index.html unten. Es ist einfacher, deshalb werde ich es hier nicht schreiben. Wenn Sie es nicht wissen, hinterlassen Sie bitte eine Nachricht oder senden Sie eine private Nachricht, wie unten gezeigt:

Ändern Sie die Nginx-Konfigurationsdatei und geben Sie den Befehl „ ein. vi conf/nginx.config"

Bequemlichkeit Leserkopie, ich habe die unnötigen hier gelöscht, der Inhalt ist wie folgt:


Wie unten gezeigt:

    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;
        }


    }

测试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配置虚拟主机

Das obige ist der detaillierte Inhalt vonVerwenden von Nginx zur Implementierung eines virtuellen Hosts unter Centos7.2. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn