Jüngste Entdeckung
80
Wenn IIS auf Port zurückgesetzt ist , wird beim Einsetzen in http://localhost/
den WHS-Computer die Warnseite "Es liegt ein Problem mit dem Sicherheitszertifikat dieser Website vor" angezeigt. Wenn ich trotzdem "fortfahre", wird diese URL https://localhost/Remote/logon?ReturnUrl=%2fremote
für einen Windows Home Server 2011-Remotewebzugriff für ein username
und angezeigt password
. Nun, ich kann mich nicht sicher erinnern, aber ich glaube nicht, dass ursprünglich nur ein http://localhost/
Thema angesprochen wurde. Es scheint jedoch, dass dies alle Versuche beeinträchtigen könnte, auf localhost zuzugreifen (unabhängig vom Port).
Was kann eigentlich das Hauptproblem sein
Oh, die Feinheiten des Networking! Eine Sache, die mich immer wieder störte, war, warum zwei der Websites "teilweise" auftauchten und die anderen überhaupt nicht. Das Ausführen des NET-Trackings von Firebug hat mir dann gezeigt, dass mein Hauptproblem darin besteht, dass mein ISP als DNS-Proxy fungiert und meine Testseiten natürlich nicht findet. Aber es findet die beiden Sites, die unter der www.
(nicht test.
) Adresse leben, und scheint diese zu bedienen, aber die Bilder sind blockiert, weil (ich nehme an) ich Blöcke für den Zugriff auf die Bilddateien eingerichtet habe, wenn nicht von der www.
für bestimmte Website.
Dies erklärt das Geheimnis der Bilder, die nicht angezeigt werden (bei direktem localhost:8080
Anruf zu erwarten ), und das merkwürdige Verhalten beim "teilweisen" Auffinden dieser spezifischen zwei der fünf Standorte.
Jetzt muss ich herausfinden, wie ich entweder meinen Router oder eine Proxy-Datei richtig konfiguriere, um sie wieder auf meinen WHS-Computer umzuleiten. Ich bin im Wildblue-Satelliten-Internetdienst, da ich mich außerhalb des Bereichs schnellerer Serviceverbindungen befinde. Sie haben eine "Optimierungs" -Datei (ich weiß nicht, ob sie für alle sichtbar ist oder nicht, wenn nicht, ist sie im Grunde dieselbe wie diese Version ), die ich möglicherweise ändern und auf mein lokales System setzen kann, um dies zu erreichen was ich brauche, aber ich bin mir nicht sicher, was ich dort tun muss.
Wenn jemand Vorschläge zum Ändern dieser Datei oder zum Konfigurieren meines Linksys E1200-Routers hat, um das Senden an den Proxy zu vermeiden, wenn es sich um eine lokale Site handelt, ist dies möglicherweise der erste (und möglicherweise letzte) Schritt zur Lösung meiner Probleme.
Repräsentativer Code basierend auf den Empfehlungen von harrymc ... funktioniert immer noch nicht
IIS-Port auf eingestellt :90
.
httdp
Datei:
Listen *:80
ServerName localhost:80
vhosts
Datei:
NameVirtualHost *:80
<VirtualHost *:80>
ServerName localhost
ProxyRequests off
ProxyPass / http://127.0.0.1:90/
ProxyPassReverse / http://127.0.0.1:90/
</virtualHost>
<VirtualHost *:80>
DocumentRoot "C:/Users/Public/LocalWebsites/site1.net/httpdocs"
ServerName test.site1.net
ProxyRequests off
ProxyPass / http://127.0.0.1/
ProxyPassReverse / http://127.0.0.1/
</VirtualHost>
<VirtualHost *:80>
DocumentRoot "C:/Users/Public/LocalWebsites/site2.net/httpdocs"
ServerName test.site2.net
ProxyRequests off
ProxyPass / http://127.0.0.1/
ProxyPassReverse / http://127.0.0.1/
</VirtualHost>
<VirtualHost *:80>
DocumentRoot "C:/Users/Public/LocalWebsites/site3.com/httpdocs"
ServerName test.site3.com
ProxyRequests off
ProxyPass / http://127.0.0.1/
ProxyPassReverse / http://127.0.0.1/
</VirtualHost>
<VirtualHost *:80>
DocumentRoot "C:/Users/Public/LocalWebsites/site4.com/httpdocs"
ServerName test.site4.com
ProxyRequests off
ProxyPass / http://127.0.0.1/
ProxyPassReverse / http://127.0.0.1/
</VirtualHost>
<VirtualHost *:80>
DocumentRoot "C:/Users/Public/LocalWebsites/site5.com/httpdocs"
ServerName test.site5.com
ProxyRequests off
ProxyPass / http://127.0.0.1/
ProxyPassReverse / http://127.0.0.1/
</VirtualHost>
Vorheriges Update: Was ich hatte geglaubt , das Hauptproblem zu sein (kann ein Unter Problem sein)
Wie lasse ich Windows Home Server (mit IIS) bestimmte lokale Host-URLs an den Port weiterleiten, 8080
damit Apache (nicht IIS), der auf demselben Computer ausgeführt wird, die Anforderung zum Bereitstellen der Seite aufnimmt?
Die c:\Windows\System32\drivers\etc\hosts
Datei wurde geändert (siehe unten), aber ich gehe davon aus, dass dies nichts mit dem Umleiten auf einen neuen Port zu tun hat. Ich gehe auch davon aus, dass IIS die bestimmte test.whatever
URL-Anforderung am Port aufnimmt 80
und an seinen eigenen lokalen Host am selben Port weiterleitet.
Ich habe Application Request Routing von einem Tipp auf einer Website heruntergeladen, die ich bei der Recherche gefunden habe, aber beim Betrachten bin ich mir nicht sicher, ob es helfen wird oder nicht (meine Hoffnung war es, eine URL-basierte Weiterleitung an den Port einzurichten 8080
). Ich bin ein Webdesigner, kein Netzwerkassistent. Wie das alles funktioniert, ist für mich etwas schwer zu fassen.
Eine mögliche Richtung zu gehen
Basierend auf diesem Link (gefunden nach der Suche nach mehr basierend auf dem ersten Kommentar von erikxiv unten) habe ich Folgendes in IIS als URL-Umschreibung versucht:
Ausgehende Regel:
Match: .*
(schien in Ordnung zu testen)
Bedingungen:
Match Any of ... (diese schienen die Musterübereinstimmung in Ordnung zu testen)
{HTTP_HOST} Matches the Pattern test\.site1\.net
{HTTP_HOST} Matches the Pattern test\.site2\.net
{HTTP_HOST} Matches the Pattern test\.site3\.com
Aktion umschreiben:
http://localhost:8080/{R:0} (it would not let me put R:1 like the example)
Aber es scheint immer noch keine Weiterleitung zu geben!
Die folgenden Informationen sind nun alle Hintergründe für die neue Anfrage oben.
Hintergrundinformation
Ich habe kürzlich einen alten Desktop, auf dem Windows XP ausgeführt wird, in einen Windows Home Server (2011) geändert. Der alte Computer war auch der Host für lokale Testsites, die auf einer Apache-Installation ausgeführt wurden. Nachforschungen haben ergeben, dass das Ausführen von Apache auf einem WHS-Computer nicht so schwierig ist, wie ich zuerst dachte (viele Websites sagen, dass der IIS von WHS und Apache Probleme verursachen würde, aber einige, die ich gefunden habe, haben bei korrekter Einrichtung überhaupt keine Probleme erwähnt. - Stellen Sie grundsätzlich sicher, dass kein Portkonflikt vorliegt.
Daher habe ich einen WAMP (64-Bit-Version) auf dem WHS-Computer installiert und die Einstellungen in der Apache- httpd
Konfigurationsdatei 8080
so geändert , dass sie am Port überwacht werden, damit kein Konflikt mit IIS auftritt. Ich habe meine virtuelle Hostdatei wie auf dem XP-Computer eingerichtet, nur mit dem Portwechsel.
Grundsätzlich schien alles gut zu laufen (siehe jedoch Update), außer ...
Die (ursprüngliche) Ausgabe
Während die Seiten zu den lokalen Sites einwandfrei aufgerufen werden und alle CSS- und Javascript- Dateien funktionieren, wird nicht jede Bilddatei angezeigt . Die Pfadinformationen sind korrekt, wie durch Klicken mit der rechten Maustaste und Auswahl View Image Info
angezeigt wird (in Firefox ... werden die Bilder übrigens in keinem Browser angezeigt, es handelt sich also nicht um einen Browserfehler).
Was mir jedoch aufgefallen ist, ist, dass das Type
im Bildinfo-Feld angezeigt text/html
wird und nicht PNG Image
oder JPEG Image
usw. Dies ist in den folgenden Informationen, wo es die Pfad- (Adress-) Informationen anzeigt - in diesem Abschnitt erkennt es, dass die Datei selbst ist Type
entweder Image
oder Background
.
Aber trotz dieser Tatsache scheint es, dass anstatt den richtigen MIME-Typ (ich nehme an) des Bildes innerhalb des HTML (tatsächlich PHP-generiertes HTML) zu erkennen, stattdessen versucht wird, das Bild (ob ein img
Element oder ein CSS background-image
) als zu verarbeiten Text, und damit mir nichts geben! Aber ich kann nicht herausfinden warum. Die mime
Datei, die die Apache-MIME-Typen steuert, ist korrekt. Die Seiten haben die folgenden Überschriften ...
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="Content-Style-Type" content="text/css" />
... aber diese sollten das Problem nicht verursachen (sie haben es nicht getan, wenn sie unter XP ausgeführt wurden, noch auf der Live-Site).
Also suche ich Gedanken zu:
- Ist meine Analyse des MIME-Typs das richtige Problem (basierend auf dem Update, wahrscheinlich nicht)?
- Wo sonst kann ich nachsehen, was das Problem verursachen könnte, und wie kann ich es beheben? Könnte es immer noch ein Konflikt mit IIS auf der WHS sein, und wenn ja, was? Könnte es irgendetwas in der PHP sein (dies scheint unwahrscheinlich), und wenn ja, was? Was kann ich sonst noch in Apache einchecken?
Aktualisierte Informationen (mit weiteren [verwandten?] Problemen)
Wenn ich noch ein bisschen herumspiele, bin ich zu dem Schluss gekommen, dass zumindest ein Teil des Problems die Änderung des Ports zu sein scheint :8080
. Zuerst wurde mir klar, dass nicht alles so gut war, wie ich dachte, als ich zu allen meinen Websites kam. Ich habe diese Darstellung in meiner c:\Windows\System32\drivers\etc\hosts
Datei:
127.0.0.1 localhost
127.0.0.1 test.site1.net
127.0.0.1 test.site2.net
127.0.0.1 test.site3.com
127.0.0.1 test.site4.com
127.0.0.1 test.site5.com
Und diese Darstellung in meiner Apache- vhosts
Datei:
NameVirtualHost *:8080
<VirtualHost *:8080>
DocumentRoot "C:/Users/Public/Documents/LocalWebsites/site1.net/httpdocs"
ServerName test.site1.net
</VirtualHost>
<VirtualHost *:8080>
DocumentRoot "C:/Users/Public/Documents/LocalWebsites/site2.net/httpdocs"
ServerName test.site2.net
</VirtualHost>
<VirtualHost *:8080>
DocumentRoot "C:/Users/Public/Documents/LocalWebsites/site3.com/httpdocs"
ServerName test.site3.com
</VirtualHost>
<VirtualHost *:8080>
DocumentRoot "C:/Users/Public/Documents/LocalWebsites/site4.com/httpdocs"
ServerName test.site4.com
</VirtualHost>
<VirtualHost *:8080>
DocumentRoot "C:/Users/Public/Documents/LocalWebsites/site5.com/httpdocs"
ServerName test.site5.com
</VirtualHost>
Hier ist das Verhalten : site1
und site4
werden angezeigt, jedoch ohne Bilder. Die anderen drei tauchen überhaupt nicht auf, sondern geben Network Error (dns_unresolved_hostname)
.
Allerdings, wenn ich die erste Stelle in den vhosts auf der WHS Maschine zugreifen , indem Sie localhost:8080
in der URL, dann wird die Bilder noch auftauchen , und Unabhängig davon , welche Seite zuerst in meiner vhosts - Datei zeigt auch bis (voraussichtlich); Dies geschieht jedoch auch dann, wenn dies zuvor nicht der Fall war (wenn ich also site2
zur ersten Position gehe, beginnt es per localhost:8080
Anruf zu "arbeiten" ).
Ich weiß, dass meine Bilddateien beim Zugriff über die Syntax in der URL einen 403
( korrigierten, ursprünglich 404 genannten ) Fehler zurückgeben test.site4.com
, und ich vermute, dass meine Bilder angezeigt werden, text/html
weil die Dateien diesen Fehler zurückgeben (ich glaube es also nicht ist ein MIME-Problem, da die Bilder nicht gefunden werden können. Aber das Seltsame ist, dass die Pfade korrekt sind und Nicht-Bilddateien (Javascript und CSS) gut funktionieren.
In meinen Augen scheint es also vielleicht etwas mit dem Portwechsel zu sein 8080
. Meine Probleme sind jetzt:
- Warum finden meine Hosts und vhosts-Dateien nicht alle Sites korrekt (gibt es eine andere Datei, die ich auf einem Windows Home Server ändern muss)?
- Warum werden die Bilder auf diesen Websites nicht gefunden (mit dem 403-Fehler, der meiner Meinung nach "verboten" ist, was meines Erachtens keinen Sinn macht, wenn den anderen Dateien in den Website-Ordnern Zugriff gewährt wird)?
- Warum funktioniert der
localhost:8080
Zugriff unabhängig von den ersten beiden Problemen?
Einige weitere Informationen
Ich wurde gebeten, Protokolldateien zu veröffentlichen. Ich stellte jedoch fest, dass keine Protokolle vorhanden waren, außer (wie es scheint) in den Fällen, in denen ich über den direkten localhost:8080
Aufruf der "Standard" -Site zugegriffen hatte .
Also habe ich die WAMP-Dienste ausgeschaltet, bin zu den URLs gegangen und habe das gleiche Verhalten festgestellt wie beim Ausführen von WAMP. Dies scheint darauf hinzudeuten, dass IIS die Domänennamen weiterhin kontrolliert, anstatt sie von Apache abzuholen ( kann jemand meine Annahme dort bestätigen? ) , Und daher kann das Problem möglicherweise immer noch darin bestehen, die Kontrolle selbst auf den WAMP-Server zu übertragen.
Antworten:
Haben Sie möglicherweise eine .htaccess-Datei, die dazu führt, dass Bilder als Text / HTML bereitgestellt werden?
quelle
.htaccess
Dateien, und keine hat eineForceType
im Code.Wenn Sie Ihre access.log-Dateien bereitstellen können (mindestens ein paar Zeilen mit dem 404-Status für die Bildanforderungen), können wir überprüfen, was schief geht. Ich vermute, dass es sich einfach um ein Domainnamenproblem handelt oder dass Ihre Site absolute Pfade für Bilder verwendet (nur Vermutungen ...), die Apache falsch behandelt
quelle
localhost
Zugriff verwendet habe. Also habe ich den WAMP-Server alle zusammen ausgeschaltet und festgestellt, dass ich die gleichen Ergebnisse erzielt habe. Dies scheint darauf hinzudeuten, dass Apache die Anforderungen zunächst nicht verarbeitet, IIS jedoch.Die Thread- IIS-Umleitung zu Apache enthält eine sehr einfache Lösung, die in die entgegengesetzte Richtung zu Ihrer geht.
Der Verfasser des letzten Eintrags sagt, dass Weiterleitungen in IIS zu begrenzt sind, um die Aufgabe zu erledigen.
Mit seiner Lösung würden Sie IIS so einrichten, dass Anforderungen von einem anderen Port als 80 empfangen werden, z. B. 90. Dann setzen Sie Apache als Empfänger für beide Ports 80 und 8080 ein, mit einer Umleitung von Port 80 zu Port 90. Apache schafft dies anscheinend was IIS nicht kann.
quelle
ourdomain.dom
etwas für meinen Computer spezifisch ist oder nicht (oder ist es nur ein willkürlicher Name, da er sich mit Subdomains befasst hat ... sollte meiner seinlocalhost
?). Außerdem wird in der ersten Verbindungour.ip.addess
das Routing für IIS für den Apache-Server identisch sein, da sie sich auf demselben Computer befinden (nur an einem anderen Port). Das sollte doch keine Probleme verursachen, oder?Da Sie es auf ein DNS-Problem zurückgeführt haben, ist das grundlegende Ergebnis, dass Sie einen lokalen DNS-Server benötigen, den Sie konfigurieren können. Sie erwähnen auch einen Linksys E1200-Router und Windows Home Server, sodass Sie zwei Ansätze verfolgen können.
Zunächst können Sie eine Firmware eines Drittanbieters (z. B. DD-WRT, OpenWRT, Tomato) auf Ihrem Router ausführen. Sie verwenden einen Broadcom-Chipsatz und sollten über einen ausreichenden Flash-Speicher verfügen. DD-WRT listet es als unterstützt auf. Meine größte Sorge ist, dass sich die Router-Firmware-Community von Drittanbietern anscheinend so weit entwickelt hat, dass es so aussieht, als würde man Anfang der 90er Jahre versuchen, Linux auszuführen. Sie können versuchen, in den Foren nach den benötigten Informationen zu suchen, vertrauen jedoch nicht der Router-Datenbank auf der DD-WRT-Site, da Sie dadurch zu den falschen Dingen geleitet werden. Insgesamt erfüllt mich diese Option nicht mit Vertrauen, und wenn Sie keinen zweiten Router zur Verfügung haben, bin ich mir nicht sicher, ob ich sie empfehlen kann, es sei denn, Sie möchten diese Art von Dingen optimieren.
Zweitens können Sie RDP in das WHS einbinden und den DNS-Server wie in diesem Forenthread beschrieben einschalten. Grundlegender Ansatz, RDP ein, Systemsteuerung, Programme hinzufügen / entfernen, Windows-Komponenten hinzufügen / entfernen (Schaltfläche), Kontrollkästchen DNS-Server aktivieren, wieder aussteigen. Ich bin mir nicht sicher, ob Sie die DNS-Verwaltungskonsole damit erhalten, und ich habe keine WHS-Box, auf der Sie sie testen können. Wenn Sie diese Konsole erhalten, befindet sie sich unter Verwaltung / DNS. Um es so zu verwenden, wie Sie es möchten, müssen Sie neue Weiterleitungszonen hinzufügen. Für die Art von Dingen, die Sie tun, würde ich für jeden Host eine Zone hinzufügen (z. B. eine Zone für www.samplesite.whatever hinzufügen) und dann einen A-Datensatzeintrag ohne angegebenen Namen hinzufügen, wodurch dies die Standardeinstellung dafür ist Zone. Der andere Ansatz wäre, eine Zone für samplesite hinzuzufügen. Fügen Sie dann benannte A-Datensätze hinzu (z. B. "www" oder "mail"). Dies kann jedoch dazu führen, dass Dinge blockiert werden, die nicht blockiert werden sollen. Die gezieltere Zone verhindert, dass Sie Dinge beeinflussen, die Sie nicht umleiten möchten. Sie zeigen dann alle Ihre Systeme auf dieses Feld als DNS-Server. Standardmäßig führt dies eine eigene externe DNS-Auflösung durch, die die DNS-Server Ihres Internetdienstanbieters vollständig umgeht. Wenn Sie diese als nächste Stufe verwenden möchten, können Sie ihre Adressen in den DNS-Servereigenschaften als Weiterleitungen angeben (Rechtsklick und Suche).
Drittens, wenn Option Zwei nicht funktioniert und Option Eins Sie erschreckt, können Sie eine Linux-Box intern einrichten und als DNS-Server einrichten. Es gibt viele Anweisungen, wie man das macht. Eine flüchtige Suche ergab diesen Artikel von Mark Kolich , der anständige Anweisungen zu sein scheint, um genau das zu tun. Wenn Sie dazu neigen, bietet dies möglicherweise auch die Ressourcen, die Sie zum Experimentieren mit Linux-basiertem Hosting benötigen (es sei denn, Sie führen eine Windows-basierte Entwicklung durch, z. B. .NET oder ähnliches).
Dieser Wikipedia-Vergleich von DNS-Servern kann ebenfalls von Nutzen sein. Mögliche Anmerkungen sind Simple DNS Plus (kommerziell), Posadis (kostenlos, veraltet? 2004), MaraDNS (kostenlos, keine GUI, sehenswert) und Unbound (kostenlos, hat Windows-Binärdownloads, hat nicht weiter gegraben). . Alle diese sollten unter Windows ausgeführt werden.
quelle
C:\Windows\System32\drivers\etc
Datei bereits die war, die ich geändert habe, und dennoch scheint sie bei der Definition meiner lokalen Websites nicht aufgegriffen zu werden. Der Artikel scheint darauf hinzuweisen, dass die Datei64-bit
nativ und32-bit
umgeleitet wird. Wie könnte sich dies auf meine Apache-Installation auswirken und warumlocalhost
wird dies für meine lokalen Websites ignoriert?du brauchst
vorher
</VirtualHost>
zu erlauben.etwas wie das
Ich verwende 192.168.1.100:80 für iis und 192.168.1.200:8080 für Apache im Internet Protocol v4. IPv4-Einstellungen (erweiterte IP-Einstellungen) haben 2 Klasse C IP 192.168.1.100 und fügen 192.168.1.200 hinzu. Dies hilft auch bei SEO aufgrund der Klasse C ip-Adressen für 2 verschiedene Websites, die miteinander verknüpft sind.
quelle