Ich möchte die Windows- Hostdatei so konfigurieren , dass Hostanforderungen basierend auf IP-Adresse und Ports gesendet werden.
Beispielsweise:
127.0.0.1:80 www.site1.com
127.0.0.1:8080 www.sitetwo.com
Weil Apache auf Port 8080 und IIS auf Port 80 lauscht (Standardeinstellung).
Also, ich denke, der beste Weg, dies zu tun, ist die hosts
Datei zu ändern . Es beeinflusst nichts. Ich erhalte weder eine Fehlermeldung noch eine Nachricht.
iis
apache-2.2
Peter Mortensen
quelle
quelle
Antworten:
Das kannst du nicht. Die hosts-Datei ist genau das - hosts. Dies entspricht einem kurzgeschlossenen DNS auf Ihrem lokalen Computer. DNS kann Sie auch nicht an Ports senden.
Um das zu erreichen, was Sie versuchen, sollten Sie virtuelles Hosting unter IIS oder Apache einrichten und diesen (basierend auf dem HTTP-Host: -Header) verwenden, damit der Dienst entscheidet, welche Site präsentiert werden soll. Dies hilft Ihnen jedoch nicht, wenn Sie dies mit IIS und Apache gleichzeitig tun möchten.
quelle
hosts
Datei ist nur für die Auflösung von Hostnamen vorgesehen<hostname>:<port>
, wird standardmäßig der Port verwendet80
Typisches Problemszenario
127.0.0.1
bekannt alslocalhost
(in der Hosts-Datei definiert) .Um eine Kollision zwischen möglicherweise vorhandenen / laufenden Servern zu vermeiden, können Sie in der Regel den Port ändern, nicht jedoch die IP-Adresse.
2a. Wenn Sie die IP-Adresse des Servers im reservierten Loopback-Adressraum ändern könnten
127.0.0.0/8
, würden Sie wahrscheinlich nicht versuchen, Ports in der Hosts-Datei festzulegen.Mögliche Lösung
Sie können dies umgehen, indem Sie das in Windows enthaltene Netzwerk-Tool
netsh
als Port-Proxy verwenden.Überblick
Aktionen
localhost:8081
127.65.43.21 example.app
127.0.0.0/8
kann verwendet werden.127.65.43.21:80
kein anderer Dienstverfügbarist.netstat -a -n -p TCP | grep "LISTENING"
netsh interface portproxy add v4tov4 listenport=80 listenaddress=127.65.43.21 connectport=8081 connectaddress=127.0.0.1
http://example.app
Hinweise:
- Diese Befehle / Dateiänderungen müssen mit Administratorrechten ausgeführt werden
- netsh portproxy benötigt IPv6-Bibliotheken, auch wenn sie nur v4tov4 verwenden. In der Regel sind sie auch standardmäßig enthalten. Andernfalls installieren Sie sie mit dem folgenden Befehl:
netsh interface ipv6 install
Sie können den Eintrag sehen, den Sie mit dem Befehl hinzugefügt haben:
netsh interface portproxy show v4tov4
Sie können den Eintrag mit dem folgenden Befehl entfernen :
netsh interface portproxy delete v4tov4 listenport=80 listenaddress=127.65.43.21
Links zu Ressourcen:
Hinweis: Diese Antwort ist eine Kopie meiner Antwort, die in dieser ähnlichen Frage / Antwort zum Stapelüberlauf erörtert wurde.
quelle
Nein, kannst du nicht. Wenn es nicht funktioniert, läuft etwas anderes schief.
Ich nehme an, das ist für eine Entwicklungsbox?
DNS löst site.com und www.site.com in localhost auf, solange Sie nicht so etwas wie das Proxyen Ihrer DNS-Abfragen ausführen. Sie sollten wahrscheinlich bei ServerFault nach Hilfe zur Webserverkonfiguration fragen, das ist das wahrscheinlichste Problem.
quelle
Das kannst du mit Fiddler machen . Mit dem Fiddler-Skript können Sie viele erstaunliche Dinge tun.
Wenn Sie Hosts wie folgt festlegen
Fügen Sie diese in CustomRules.js (zu öffnen CustomRules.js , wählen anpassen Regeln auf Fiddlers Regeln Menü)
Dann konvertiert Fiddler den Host und Sie stellen eine Verbindung zu Port 8080 her.
quelle
Verwenden Sie die Server nur für die lokale Entwicklung? Wenn ja, können Sie Ihren Apache so einstellen, dass er 127.0.0.2:80 abhört und dies mit der hosts-Datei auf den gewünschten Domainnamen umleitet.
quelle
Wie bei den anderen Antworten enthält die Host-Datei keine Port-Informationen, Sie können jedoch eine Seite erstellen, die den Header umleitet, wie dies Apache oder IIS für namensbasiertes virtuelles Hosting tun würden. Überprüfen Sie den Header und leiten Sie ihn nach Bedarf um. Allerdings sehe ich den Wert darin nicht wirklich, da Sie das Rad neu erfinden. Apache unterstützt portbasiertes virtuelles Hosting und ich gehe davon aus, dass dies der Fall ist.
Ist Ihr Ziel, eine Entwicklungsmaschine zu haben, auf der beide laufen, ist dies für eine Produktionssituation.
quelle
Folge diesen Schritten:
/programming/8652948/using-port-number-on-windows-xp-host-file
quelle
Dies ist, was Sie tun können, es wäre nur für die lokale Entwicklung hilfreich.
Hosts-Datei:
Erstellen Sie in IIS eine neue Website für local.site1.com und local.site2.com
IIS-Setup
Du bist startklar. Stellen Sie einfach sicher, dass die von Ihnen verwendeten Ports nicht von einem anderen Prozess verwendet werden und auch von Firewall, Antivirus usw. geöffnet sind.
Danach können Sie die folgenden URLs verwenden, um über einen lokalen Computer oder ein LAN auf Websites zuzugreifen.
quelle