Ich habe mehrere virtuelle Nginx-Hosts, die alle auf localhost verweisen. Momentan haben sie denselben Namen, aber unterschiedliche Ports localhost:8080
. localhost:8081
Stattdessen hätte ich gerne, dass sie denselben Port, aber unterschiedliche Namen haben site1:8080
.site2:8080
/etc/hosts/
Dies erfordert jedoch, dass ich für jede Site neue Einträge hinzufüge :
127.0.0.1 site1 site2 site3 site4
Gibt es stattdessen eine Möglichkeit, eine .local
Domäne zu erstellen, sodass alles, was mit dieser Endung eingegeben wird, in localhost aufgelöst wird? Auf diese Weise könnte ich dies tun site1.local:8080
und site2.local:8080
müsste /etc/hosts nicht jedes Mal aktualisieren. So etwas wie
127.0.0.1 .local
Leider scheint das nicht zu funktionieren.
Wie kann ich es zum Laufen bringen, ohne etwas wie einrichten zu müssen dnsmasq
?
Ich habe gehört vonhttp://readme.localtest.me/was es ermöglicht, site1.localtest.me:8080
aber ich arbeite viel ohne Internetverbindung, also würde ich idealerweise etwas verwenden, für dessen Auflösung auf 127.0.0.1 keine Onlineverbindung erforderlich ist.
Gibt es etwas, was ich damit machen könnte /etc/hosts
, /etc/resolv.conf
oder etwas anderes, das zum Einrichten einer .local-Domäne funktionieren könnte?
Antwort1
Sie können keine Platzhalter verwenden /etc/hosts
. Ohne DNS-Server ist dies nicht möglich.
Sie haben zwei Möglichkeiten: 1) Fügen Sie alle benötigten benutzerdefinierten Hosts ein /etc/hosts
(Sie können dies mit einem benutzerdefinierten Shell-Skript automatisieren).
2) Verwenden Sie für diese Aufgabe einfach einen benutzerdefinierten lokalen DNS. Ich würde empfehlenDNS-MASQ.
Sie müssen nur --address=/local/127.0.0.1
den Parameter in dnsmasq verwenden, wobei „local“ Ihr Domänenname ist.