Detaillierte Schritte zum Konfigurieren virtueller Hosts in nginx

Detaillierte Schritte zum Konfigurieren virtueller Hosts in nginx

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.

Bildbeschreibung hier einfügen

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:

  • Domänennamenbasiertes virtuelles Hosting: verschiedene Domänennamen, gleiche IP (diese Methode wird am häufigsten verwendet)
  • Portbasiertes virtuelles Hosting: Anstatt Domänennamen oder IP-Adressen zu verwenden, um die Inhalte verschiedener Sites zu unterscheiden, werden unterschiedliche TCP-Portnummern verwendet.
  • Virtuelle Hosts basierend auf IP-Adressen : unterschiedliche Domänennamen, unterschiedliche IP-Adressen (Netzwerkschnittstelle muss hinzugefügt werden, wird nicht häufig verwendet) Basierend auf IP-Adressen

Bildbeschreibung hier einfügen

Methode 1: Mehrere Netzwerkkarten und mehrere IPs

Zwei 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 

Bildbeschreibung hier einfügenBildbeschreibung hier einfügen

Methode 2: Einzelne Netzwerkkarte mit mehreren IP-Adressen

Konfigurieren 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

Bildbeschreibung hier einfügen

Wird hauptsächlich innerhalb des Unternehmens verwendet, wenn ein Domänenname nicht verwendet werden kann oder nicht existiert

Konfiguration

[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 

Bildbeschreibung hier einfügenBildbeschreibung hier einfügen

Basierend auf dem Domänennamen

Bildbeschreibung hier einfügen

Konfiguration

Im 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 

Bildbeschreibung hier einfügen
Bildbeschreibung hier einfügen
Bildbeschreibung hier einfügen

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:
  • So richten Sie virtuelle Hosts und angegebene Zugriffspfade in Nginx ein
  • Beispiel für die Einrichtung eines virtuellen Nginx-Hosts (Konfiguration mehrerer Websites)
  • Drei Möglichkeiten zum Konfigurieren virtueller Nginx-Hosts (basierend auf Domänennamen)
  • Detaillierte Erläuterung des Konfigurationsbeispiels für einen virtuellen Nginx-Host
  • Detaillierte Analyse des virtuellen Nginx-Hosts
  • Zusammenfassung einiger unpopulärer Erkenntnisse über virtuelle Hosts in Nginx

<<:  Beispiel für Javascript-Bubblesort

>>:  Beispielcode für HTML-Layout links und rechts

Artikel empfehlen

Installationsschritte von Docker-CE auf dem Raspberry Pi 4b Ubuntu19-Server

Das Raspberry Pi-Modell ist 4b, 1 G RAM. Das Syst...

Docker-Bindung mit fester IP/Hostübergreifender Container-Gegenzugriffsvorgang

Vorwort Bisher waren statische IPs, die über Pipe...

Linux verwendet den Binärmodus zur Installation von MySQL

In diesem Artikel werden die einzelnen Schritte z...

So konfigurieren Sie ein Jupyter-Notebook im Docker-Container

Das Jupyter-Notebook wird unter dem Docker-Contai...

Lizenzschlüssel für VMware Workstation Pro 16 mit Nutzungs-Tutorial

VMware Workstation ist eine leistungsstarke virtu...

Designtheorie: Zehn Tipps zur Inhaltspräsentation

<br /> Der Entwurf einer persönlichen Schrei...

JS realisiert Bild Digitaluhr

In diesem Artikelbeispiel wird der spezifische JS...

Verwenden Sie zum Senden des Formulars ein Bild statt einer Schaltfläche.

Code kopieren Der Code lautet wie folgt: <form...

So ändern Sie den Bildlaufleistenstil in Vue

Inhaltsverzeichnis Zunächst müssen Sie wissen, da...

js, um einen einfachen Akkordeoneffekt zu erzielen

In diesem Artikel wird der spezifische Code von j...

Allgemeiner HTML-Seitenstil (empfohlen)

Wie unten dargestellt: XML/HTML-CodeInhalt in die...

Sie müssen wahrscheinlich keine Switch-Anweisungen in JavaScript verwenden

Inhaltsverzeichnis Kein Schalter, keine komplexen...