Virtuelle Hosts verwenden spezielle Software- und Hardwaretechnologien, die einen im Internet laufenden Serverhost in mehrere „virtuelle“ Hosts aufteilen. Jeder virtuelle Host kann eine unabhängige Website mit einem unabhängigen Domänennamen und vollständigen Internetserverfunktionen (WWW, FTP, E-Mail usw.) sein. Virtuelle Hosts auf demselben Host sind völlig unabhängig. Aus der Sicht der Website-Besucher ist jeder virtuelle Host genau dasselbe wie ein eigenständiger Host. Mit virtuellen Hosts ist es nicht erforderlich, für jede auszuführende Website einen separaten Nginx-Server bereitzustellen oder einen separaten Satz von Nginx-Prozessen auszuführen. Virtuelle Hosts bieten die Möglichkeit, mehrere Websites auf demselben Server und mit demselben Satz von Nginx-Prozessen auszuführen. Es gibt drei Möglichkeiten, virtuelle Hosts zu konfigurieren:
Methode 1: Mehrere Netzwerkkarten und mehrere IPsZwei physische Netzwerkkarten, zwei IP # Zwei physische Netzwerkkarten ens32 und ens34 [root@nginx Netzwerkskripte]# ifconfig ens32 | awk 'NR==2 {print $2}' 192.168.126.41 [root@nginx Netzwerkskripte]# ifconfig ens34 | awk 'NR==2 {print $2}' 192.168.126.42 Bearbeiten Sie die Konfigurationsdatei, um basierend auf jeder IP einen virtuellen Host zu erstellen # Um zu verhindern, dass die Konfigurationsdatei /etc/nginx/conf.d/default.conf beeinträchtigt wird, benennen Sie sie um in [root@nginx ~]# mv /etc/nginx/conf.d/default.conf /etc/nginx/conf.d/default [root@nginx ~]# vim /etc/nginx/conf.d/ip.conf # Der virtuelle Hostserver, der der ens32-Netzwerkkarte entspricht { hören Sie 192.168.126.41:80; Standort / { root /ip_ens32; Index Index.html; } } # ens34 Netzwerkkarte, die dem virtuellen Hostserver entspricht { hören Sie 192.168.126.42:80; Standort / { root /ip_ens34; Index Index.html; } } Erstellen Sie ein Dateiverzeichnis und Dateien für die virtuelle Host-Webseite [root@nginx ~]# mkdir /ip_ens32 [root@nginx ~]# mkdir /ip_ens34 [root@nginx ~]# echo "ens32" > /ip_ens32/index.html [root@nginx ~]# echo "ens34" > /ip_ens34/index.html Überprüfen Sie die Syntax der Konfigurationsdatei [root@nginx ~]# nginx -t nginx: die Syntax der Konfigurationsdatei /etc/nginx/nginx.conf ist in Ordnung nginx: Test der Konfigurationsdatei /etc/nginx/nginx.conf ist erfolgreich Nginx-Dienst neu laden [root@nginx ~]# systemctl nginx neu laden prüfen [root@nginx ~]# curl 192.168.126.41 ens32 [root@nginx ~]# curl 192.168.126.42 ens34 Methode 2: Einzelne Netzwerkkarte mit mehreren IP-AdressenKonfigurieren Sie mehrere IPs für eine physische Netzwerkkarte ip addr add IP/MASK dev Netzwerkkartenname# delete ip addr del IP/MASK dev Netzwerkkartenname Die restlichen Schritte sind die gleichen wie bei der obigen Multi-NIC-Multi-IP-Konfiguration Portbasiert Wird hauptsächlich innerhalb des Unternehmens verwendet, wenn ein Domänenname nicht verwendet werden kann oder nicht existiertKonfiguration [root@nginx ~]# vim /etc/nginx/conf.d/port.conf Server { hören 81; Standort / { Wurzel /port_81; Index Index.html; } } Server { hören 82; Standort / { Wurzel /port_82; Index Index.html; } } [root@nginx ~]# mkdir /port_{81..82} [root@nginx ~]# echo "81" > /port_81/index.html [root@nginx ~]# echo "82" > /port_82/index.html [root@nginx ~]# nginx -t nginx: die Syntax der Konfigurationsdatei /etc/nginx/nginx.conf ist in Ordnung nginx: Test der Konfigurationsdatei /etc/nginx/nginx.conf ist erfolgreich [root@nginx ~]# systemctl nginx neu laden prüfen [root@nginx ~]# curl 192.168.126.41:81 81 [root@nginx ~]# curl 192.168.126.41:82 82 Basierend auf dem DomänennamenKonfigurationIm Allgemeinen entspricht ein Domänenname einer Konfigurationsdatei, die einfach zu verwalten ist. [root@nginx ~]# vim /etc/nginx/conf.d/test1.dxk.com.conf Server { hören Sie 80; Servername test1.dxk.com; Standort / { Wurzel /test1; Index Index.html; } } [root@nginx ~]# vim /etc/nginx/conf.d/test2.dxk.com.conf Server { hören Sie 80; Servername test2.dxk.com; Standort / { Wurzel /test2; Index Index.html; } } [root@nginx ~]# mkdir /test{1..2} [root@nginx ~]# echo "test1" > /test1/index.html [root@nginx ~]# echo "test2" > /test2/index.html [root@nginx ~]# nginx -t nginx: die Syntax der Konfigurationsdatei /etc/nginx/nginx.conf ist in Ordnung nginx: Test der Konfigurationsdatei /etc/nginx/nginx.conf ist erfolgreich [root@nginx ~]# systemctl nginx neu laden prüfen# Domänennamenauflösung konfigurieren [root@nginx ~]# echo -e "192.168.126.41 test1.dxk.com\n192.168.126.41 test2.dxk.com" >> /etc/hosts [root@nginx ~]# cat /etc/hosts 127.0.0.1 lokaler Host lokaler Host.lokale Domäne lokaler Host4 lokaler Host4.lokale Domäne4 ::1 lokaler Host lokaler Host.lokale Domäne lokaler Host6 lokaler Host6.lokale Domäne6 192.168.126.41 test1.dxk.com 192.168.126.41 test2.dxk.com [root@nginx ~]# curl test1.dxk.com test1 [root@nginx ~]# curl test2.dxk.com test2 Hier ist das Problem: Wenn die Domänennamenauflösung falsch konfiguriert ist, wird der Webseiteninhalt beim Zugriff auf den falschen Domänennamen zurückgegeben (der virtuelle Host für den falschen Domänennamen ist nicht konfiguriert). [root@nginx ~]# vim /etc/hosts 192.168.126.41 test1.dxk.com 192.168.126.41 test3.dxk.com # Dies sollte test2.dxk.com sein, wurde aber falsch geschrieben und der virtuelle Host, der dem Domänennamen test3.dxk.com entspricht, existiert nicht Besuchen Sie den falschen Domänennamen [root@nginx ~]# curl test3.dxk.com test1 # Wie Sie sehen, werden weiterhin Webseiteninformationen zurückgegeben Denn wenn bei der Konfiguration der Domänennamenauflösung der Domänenname falsch geschrieben wird, ist die IP korrekt. In diesem Fall gibt der Server standardmäßig die Webseiteninformationen des ersten virtuellen Hosts, der die IP und den Port 80 erfüllt, an den Client zurück. [root@nginx ~]# ll /etc/nginx/conf.d/ -rw-r--r--. 1 root root 112 3. Juli 21:23 test1.dxk.com.conf -rw-r--r--. 1 root root 112 3. Juli 21:22 test2.dxk.com.conf Das ist zu beachten Dies ist das Ende dieses Artikels über den virtuellen Nginx-Host. Weitere relevante Inhalte zum virtuellen Nginx-Host finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den verwandten Artikeln weiter unten. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird! Das könnte Sie auch interessieren:
|
<<: Beispiel für Javascript-Bubblesort
>>: Beispielcode für HTML-Layout links und rechts
Das Raspberry Pi-Modell ist 4b, 1 G RAM. Das Syst...
1. Es gibt derzeit viele Tools zur Python-Version...
Ich habe viel online gesucht und festgestellt, da...
Vorwort Dieser Artikel stellt hauptsächlich den r...
Vorwort Bisher waren statische IPs, die über Pipe...
In diesem Artikel werden die einzelnen Schritte z...
Das Jupyter-Notebook wird unter dem Docker-Contai...
VMware Workstation ist eine leistungsstarke virtu...
<br /> Der Entwurf einer persönlichen Schrei...
In diesem Artikelbeispiel wird der spezifische JS...
Code kopieren Der Code lautet wie folgt: <form...
Inhaltsverzeichnis Zunächst müssen Sie wissen, da...
In diesem Artikel wird der spezifische Code von j...
Wie unten dargestellt: XML/HTML-CodeInhalt in die...
Inhaltsverzeichnis Kein Schalter, keine komplexen...