Ich muss Sub-Domains auf meinem Localhost testen. Wie kann ich dieses Ergebnis effektiv *.localhost.com
zu meiner /etc/hosts/
Datei hinzufügen ?
Wie kann ich dieses Problem umgehen, wenn dies nicht möglich ist? Ich muss Wildcard-Subdomains auf meinem lokalen Server testen. Es ist ein Django-Devserver. Kann der Django-Devserver die Subdomains verwalten? Kann mir eine andere Software / Routing-Software das gewünschte Endergebnis liefern?
Antworten:
Ich habe einen DNS-Proxy in Python geschrieben. Es werden Platzhaltereinträge in / etc / hosts gelesen. Siehe hier: https://github.com/hubdotcom/marlon-tools/blob/master/tools/dnsproxy/dnsproxy.py
quelle
pip install
:)Installieren Sie dnsmasq (das mache ich auf allen meinen Linux-Desktops sowieso als DNS-Cache). In
dnsmasq.conf
die Zeile:quelle
sudo port install dnsmasq
2. Bearbeiten/opt/local/etc/dnsmasq.conf
3.sudo port load dnsmasq
192.168.50.11
aber DNS wird nicht aufgelöst. Irgendwelche Ideen, ist dieses Beispiel für "Nicht-127.0.0.1" -IPs korrekt?/etc/NetworkManager/dnsmasq.d/dnsmasq-localhost.conf
und fügen Sie die Zeileaddress=/localhost.com/127.0.0.1
ein, und starten Sie den Computer neu.Es ist nicht möglich, Platzhalter in der
/etc/hosts
Datei anzugeben . Geben Sie entweder die erforderlichen Hostnamen explizit an oder richten Sie alternativ einen lokalen Nameserver mit den entsprechenden Regeln ein.quelle
Sie müssen einen DNS-Server einrichten und von jedem Client zur Lösung verwenden lassen. Der Server selbst kann so "leicht" wie dnsmasq oder so schwer wie BIND sein .
quelle
--address=
Abschnitt der Manpage dnsmasq.conf beschriebenen Verhaltens deckt den oben beschriebenen Anwendungsfall nicht ab?Einfacher Workflow (keine Installation erforderlich)
Ich persönlich erstelle dafür gerne eine PAC-Datei und lasse meinen Browser sie einfach verwenden.
Schritt 1: erstelle eine Datei zB:
*.proxy.pac*
irgendwo (ich benutze meinen$home
Ordner)Schritt 2: Fügen Sie diesen Code ein (Beispiel ist mit Port 8000):
Schritt 3 : Lassen Sie Ihren Browser diese PAC-Datei verwenden.
Youtube Video für PAC & Firefox
Schritt 4 : Jetzt können Sie Ihre App testen, indem Sie auf Folgendes zugreifen:
http://mysubdomain.localhost/
Schritt 5: Viel Spaß :)
quelle
wget
, bleiben davon unberührt). Das ist an sich kein Problem, aber vielleicht ist es besser, dies zu erwähnen.req.url
nun eine absolute URL ist. Dies geschieht, weil davon ausgegangen wird, dass Sie einen tatsächlichen Proxyserver schreiben möchten. Es ist jedoch überraschend, wenn Sie diese Technik gewählt haben, um das Hinzufügen von / etc / hosts-Einträgen zum Debuggen zu stoppen. Zu Ihrer Information an diejenigen, die vielleicht den gleichen Weg gehen wie ich.Ich habe ein altes Projekt von mir aufgeräumt:
https://github.com/airtonix/avahi-aliases
Anforderungen:
Vorteile gegenüber der Verwendung von dnsmasq oder dem Python-DNS-Proxy:
quelle
Diese auf DNS basierende Lösung funktionierte in meinem Fall perfekt, ohne dass etwas installiert werden musste: https://gist.github.com/fedir/04e60d679d5657d1f9f9aa10b3168282 (Mac OSX 10.9)
quelle
In können Sie keine Platzhalter verwenden
/etc/hosts
.Sehen Sie sich hier eine gute exemplarische Vorgehensweise für OS X mit BIND, dem integrierten, aber inaktiven DNS-Server und Apache an.
quelle
Wenn Sie verwenden möchten ,
dnsmasq
mitNetworkManager
Ihnen kann (oder sogar müssen?) Startendnsmasq
vonNetworkManager
durch Zugabe vonzu
/etc/NetworkManager/NetworkManager.conf
. Dann geht die dnsmasq-Konfiguration zu/etc/NetworkManager/dnsmasq.conf
oder/etc/NetworkManager/dnsmasq.d/
resp.quelle
Kurze Antwort:
In Ihrer Datei / etc / hosts / können Sie keine Platzhalter oder Portnummern verwenden. Sie müssen einen Eintrag für jede Ihrer Unterdomänen erstellen
quelle
Die kurze Antwort ist, dass Sie es nicht tun. Die längere Antwort lautet, dass Sie klarer definieren müssen, was Sie tatsächlich erreichen möchten, da es möglicherweise einen besseren und einen anderen Weg gibt, dies zu erreichen.
Für das Webhosting (ich habe noch nie gesehen, dass es anderweitig verwendet wird) wird DNS in Kombination mit einem Web-Server verwendet, der das virtuelle Hosting unterstützt. Weitere Informationen zu Wildcard-DNS-Einträgen (Wikipedia) sowie einen Artikel zum Hosting von Wildcards mit Apache und Bind für Linux mit bind und Apache.
Im schlimmsten Fall könnten Sie einen lokalen DNS-Server verwenden, nehme ich an.
quelle
Eine häufige Aufgabe für dieses Thema ist die Zuordnung von Verzeichnissen zu Unterdomänen. Eine sehr einfache Möglichkeit besteht darin, die verzeichnisbasierten Einträge automatisch an die hosts-Datei anzuhängen:
quelle
Vielen Dank, tschundeee, für die meiner Meinung nach ultimative Antwort auf dieses Problem. Ich wünschte, ich könnte nur einen Kommentar abgeben, aber hier ist die Gesamtkonfiguration für diejenigen, die versuchen, das ursprüngliche Ziel zu erreichen , XAMPP)
hosts-Datei (einen Eintrag hinzufügen)
Datei: / etc / hosts (nicht Windows)
httpd.conf Konfiguration (aktiviere vhosts)
Datei: /XAMPP/etc/httpd.conf
Konfiguration von httpd-vhosts.conf
Datei: XAMPP / etc / extra / httpd-vhosts.conf
starte Apache neu
pac Datei erstellen:
Speichern Sie die Datei als whatever.pac, wo immer Sie möchten, und laden Sie sie dann im Netzwerk des Browsers> Proxy> Auto_Configuration-Einstellungen (laden Sie sie neu, wenn Sie dies ändern).
quelle
dnsmasq funktionierte für mich, außer dass ich einige zusätzliche Schritte machen musste.
Hier ist die vollständige Prozedur:
Stellen Sie
/etc/resolv.conf
die folgende Zeile voranFügen Sie die folgenden Zeilen hinzu
/etc/dnsmasq.conf
Starten Sie dnsmasq neu
quelle