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.