Nginx unterstützt drei Möglichkeiten zum Konfigurieren virtueller Hosts: IP-basierte virtuelle Hostkonfiguration, portbasierte virtuelle Hostkonfiguration und domänennamenbasierte virtuelle Hostkonfiguration. Detaillierte Erläuterung der drei Möglichkeiten zum Konfigurieren virtueller Nginx-Hosts (basierend auf Ports) https://www.jb51.net/article/14977.htm Detaillierte Erläuterung der drei Möglichkeiten zum Konfigurieren virtueller Nginx-Hosts (basierend auf Domänennamen) https://www.jb51.net/article/14978.htm 1. IP-basierte virtuelle Hostkonfiguration Wenn derselbe Server über mehrere IPs verfügt, können Sie die IP-basierte Hostkonfiguration virtueller Maschinen verwenden, um verschiedene Dienste an unterschiedliche IPs zu binden. 1.1 Angenommen, der Server hat die IP-Adresse 192.168.2.150, verwenden Sie zuerst ifconfig, um die anderen drei IPs an dieselbe Netzwerkschnittstelle zu binden. [root@localhost ~]# ifconfig ens33:1 192.168.2.151/24 up [root@localhost ~]# ifconfig ens33:2 192.168.2.152/24 up [root@localhost ~]# ifconfig ens33:3 192.168.2.153/24 up [root@localhost ~]# ifconfig ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.2.106 Netzmaske 255.255.255.0 Broadcast 192.168.2.255 inet6 fe80::2a8d:be6:a4a8:ea0 Präfixlänge 64 Bereichs-ID 0x20<Link> Ether 00:0c:29:16:90:ae txqueuelen 1000 (Ethernet) RX-Pakete 1220 Bytes 87955 (85,8 KiB) RX-Fehler 0 verloren 0 Überläufe 0 Frame 0 TX-Pakete 206 Bytes 23755 (23,1 KiB) TX-Fehler 0 verloren 0 Überläufe 0 Träger 0 Kollisionen 0 ens33:1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.2.151 Netzmaske 255.255.255.0 Broadcast 192.168.2.255 Ether 00:0c:29:16:90:ae txqueuelen 1000 (Ethernet) ens33:2: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.2.152 Netzmaske 255.255.255.0 Broadcast 192.168.2.255 Ether 00:0c:29:16:90:ae txqueuelen 1000 (Ethernet) ens33:3: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.2.153 Netzmaske 255.255.255.0 Broadcast 192.168.2.255 Ether 00:0c:29:16:90:ae txqueuelen 1000 (Ethernet) lo: Flags = 73 <UP, LOOPBACK, RUNNING> mtu 65536 inet 127.0.0.1 Netzmaske 255.0.0.0 inet6 ::1 Präfixlänge 128 Bereichs-ID 0x10<Host> loop txqueuelen 1 (Lokaler Loopback) RX-Pakete 72 Bytes 6252 (6,1 KiB) RX-Fehler 0 verloren 0 Überläufe 0 Frame 0 TX-Pakete 72 Bytes 6252 (6,1 KiB) TX-Fehler 0 verloren 0 Überläufe 0 Träger 0 Kollisionen 0 1.2 Die den 3 IPs entsprechenden Domänennamen lauten wie folgt. Konfigurieren Sie die Hostdatei des Hosts zum einfachen Testen [root@localhost ~]# vim /etc/hosts [root@localhost ~]# 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.2.151 www.test151.com 192.168.2.152 www.test152.com 192.168.2.153 www.test153.com Es kann die Situation einer DNS-Abfrage simulieren. Hinweis: Führen Sie nach dem Einrichten der Hosts-Datei unbedingt den folgenden Befehl aus, damit dieser wirksam wird 1. Rufen Sie die Kommandozeile mit cmd unter Windows auf C:\Benutzer\1234>ipconfig /flushdns Die Windows-IP-Konfiguration hat den DNS-Auflösungscache erfolgreich geleert. 1.3 Erstellen Sie ein Stammverzeichnis für den virtuellen Host, um Webseiten zu speichern und die Homepage-Datei index.html zu erstellen [root@localhost /]# mkdir -p /data/www [root@localhost /]# cd /data/www [root@localhost www]# mkdir 151 [root@localhost www]# mkdir 152 [root@localhost www]# mkdir 153 [root@localhost www]# echo "192.168.2.151" > 151/index.html [root@localhost www]# echo "192.168.2.152" > 152/index.html [root@localhost www]# echo "192.168.2.153" > 153/index.html [root@localhost www]# ls 151 152 153 1.4 Ändern Sie nginx.conf und fügen Sie die Konfigurationsdatei des virtuellen Hosts in die Hauptdatei ein [root@localhost /]# cd /usr/local/nginx/conf/ [root@localhost conf]# ls fastcgi.conf fastcgi_params koi-utf mime.types nginx.conf scgi_params uwsgi_params win-utf fastcgi.conf.default fastcgi_params.default koi-win mime.types.default nginx.conf.default scgi_params.default uwsgi_params.default [root@localhost conf]# vim nginx.conf Fügen Sie die folgende Konfiguration am Ende der Datei nginx.conf hinzu # Suchen Sie im http-Abschnitt nach folgendem Inhalt und löschen Sie das "#" vor jeder Zeile log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; # Fügen Sie die folgende Anweisung vor dem letzten „}“ am Ende der Konfigurationsdatei hinzu, wie unten gezeigt: include vhost/*.conf; } 1.5 Bearbeiten Sie die Konfigurationsdatei für jede IP (Konfigurationsdatei für jeden virtuellen Host). [root@localhost conf]# mkdir -p vhost [root@localhost conf]# cd vhost/ [root@localhost vhost]# cat www.test151.conf Server { hören Sie 192.168.2.151:80; # Auf den tatsächlichen Domänennamen konfigurieren. Der Domänenname jeder Konfigurationsdatei des virtuellen Hosts ist derselbe #server_name www.test.com; Zugriffsprotokoll /data/logs/www.test151.com.log main; Fehlerprotokoll /data/logs/www.test151.com.error.log; Standort / { Wurzel /data/www/151; Index Index.html Index.htm; } } [root@localhost vhost]# cat www.test152.conf Server { hören Sie 192.168.2.152:80; # Auf den tatsächlichen Domänennamen konfigurieren. Der Domänenname jeder Konfigurationsdatei des virtuellen Hosts ist derselbe #server_name www.test.com; Zugriffsprotokoll /data/logs/www.test152.com.log main; Fehlerprotokoll /data/logs/www.test152.com.error.log; Standort / { Wurzel /data/www/152; Index Index.html Index.htm; } } [root@localhost vhost]# cat www.test153.conf Server { hören Sie 192.168.2.153:80; # Auf den tatsächlichen Domänennamen konfigurieren. Der Domänenname jeder Konfigurationsdatei des virtuellen Hosts ist derselbe #server_name www.test.com; Zugriffsprotokoll /data/logs/www.test153.com.log main; Fehlerprotokoll /data/logs/www.test153.com.error.log; Standort / { Wurzel /data/www/153; Index Index.html Index.htm; } } 1.6 Erstellen Sie eine Protokolldatei, sonst kann Nginx nicht gestartet werden [root@localhost /]# mkdir -p /data/logs [root@localhost /]# touch /data/logs/www.test151.com.log [root@localhost /]# touch /data/logs/www.test151.com.error.log [root@localhost /]# touch /data/logs/www.test152.com.log [root@localhost /]# touch /data/logs/www.test152.com.error.log [root@localhost /]# touch /data/logs/www.test153.com.log [root@localhost /]# touch /data/logs/www.test153.com.error.log [root@localhost /]# ls /data/logs/ www.test151.com.error.log www.test152.com.error.log www.test153.com.error.log www.test151.com.log www.test152.com.log www.test153.com.log 1.7 Testen Sie die Konfigurationsdatei, bevor Sie nginx starten [root@localhost /]# cd /usr/local/nginx/sbin/ [root@localhost sbin]# ./nginx -t nginx: die Syntax der Konfigurationsdatei /usr/local/nginx/conf/nginx.conf ist in Ordnung nginx: Test der Konfigurationsdatei /usr/local/nginx/conf/nginx.conf ist erfolgreich # Starten Sie nginx [root@localhost sbin]# ./nginx 1.8 Testdateien [root@localhost sbin]# curl www.test151.com 192.168.2.151 [root@localhost sbin]# curl www.test152.com 192.168.2.152 [root@localhost sbin]# curl www.test153.com 192.168.2.153 Anhang: Bei der Konfiguration aufgetretene Probleme 1. Beim Testen von Konfigurationsdateien aufgetretene Probleme [root@localhost sbin]# ./nginx -t nginx: [emerg] unerwartetes "}" in /usr/local/nginx/conf/nginx.conf:122 nginx: Test der Konfigurationsdatei /usr/local/nginx/conf/nginx.conf fehlgeschlagen Lösung: Ich habe vergessen, in der folgenden Anweisung ein Semikolon hinzuzufügen vhost/*.conf einschließen; 2. Beim Testen mit curl www.test*.com wird immer das gleiche Ergebnis erzielt. Lösung: Schreiben Sie die IP-Adresse nicht nach dem Servernamen. Nach dem Servernamen kann nur der Domänenname hinzugefügt werden. Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird. Das könnte Sie auch interessieren:
|
<<: Detaillierte Erläuterung von Beispielen für JS-Closure- und Garbage-Collection-Mechanismen
Ein Ereignis ist eine vom Benutzer oder dem Brows...
eins. Warum einen privaten Nexus-Server erstellen...
In diesem Artikel finden Sie das Installations-Tu...
Streng genommen verfügt nginx nicht über eine Int...
Inhaltsverzeichnis 1. Einführung in integrierte O...
Projektszenario: 1. Einschränkungen beim Hochlade...
Die Installation der MySQL-Software und die Daten...
In diesem Artikel werden anhand von Beispielen di...
Inhaltsverzeichnis Download des Installationspake...
Inhaltsverzeichnis Vorwort Tatsächlicher Kampf 1....
Im Allgemeinen verwenden wir nach dem Start des C...
Vorwort Der Autor war schon immer der Meinung, da...
Inhaltsverzeichnis 1. Datentyp 1.1 Warum brauchen...
Beispiel für einen WeChat-Applet-Rechner. Zu Ihre...
1 Schritte zur Systeminstallation Betriebssystemv...