Ich versuche, verschiedene Server auf verschiedenen .local
Domänen auf meinem RPi auszuführen. Dies ist meine nginx default.conf
server {
listen 80 default_server;
listen [::]:80 default_server;
root /var/www/html;
# Add index.php to the list if you are using PHP
index index.html index.htm index.nginx-debian.html;
server_name raspberrypi.local;
}
/etc/hosts
Datei -
127.0.0.1 localhost
::1 localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
127.0.1.1 raspberrypi
Jetzt avahi-publish
verwende ich einen Alias für eine andere Domain
avahi-publish -a -R foo.local 192.168.68.120
Aber wenn ich auf diese Domäne zugreife, wird auch das Standard-HTML von Nginx angezeigt, was ich nicht möchte. Ich verstehe, dass ich noch keinen anderen Server konfiguriert habe, der auf dieser Domäne läuft, aber ich gehe davon aus, dass die Meldung „Verbindung nicht möglich“ oder „nicht erreichbar“ angezeigt wird.
Wenn dies nicht möglich ist, gibt es eine Möglichkeit, mehrere .local
Domänennamen zu haben, die keine Aliase sind?
Antwort1
Aber wenn ich auf diese Domäne zugreife, wird auch das Standard-HTML von Nginx angezeigt, was ich nicht möchte. Ich verstehe, dass ich noch keinen anderen Server konfiguriert habe, der auf dieser Domäne läuft, aber ich gehe davon aus, dass die Meldung „Verbindung nicht möglich“ oder „nicht erreichbar“ angezeigt wird.
Sie erhalten keine Meldung „Verbindung nicht möglich“, weil Sie Nginx so konfiguriert haben, dass es aufalleAdressen für diesen Server – das bedeutet hier: Wenn er auf aka listen *:80
lauscht, akzeptiert er Verbindungen zu jeder lokalen IPv4-Adresse. (Dasselbe gilt für IPv6.)0.0.0.0
*
[::]
(Die server_name
Option hat hierauf keinen Einfluss – sie wählt lediglich den richtigen Server{}-Block basierend auf dem HTTP-Header „Host“ in der empfangenen Anfrage aus.nachdie Verbindung wurde hergestellt. Mit anderen Worten, es werden namensbasierte virtuelle Hosts implementiert, statt IP-basierte.)
Wenn die virtuellen Hosts IP-basiert sein sollen, ändern Sie Ihre Server{}-Blöcke so, dass sie auf bestimmten IP-Adressen statt auf der Platzhalteradresse lauschen:
server {
listen 192.168.68.xxx:80;
}
Beachten Sie, dass dies fehlschlägt, wenn Nginx gestartet wird, bevor die Adresse einer Schnittstelle zugewiesen wurde. (Dies könnte vermieden werden durchIP_FREEBINDaber es scheint, dass Nginx das noch nicht unterstützt.)