Najnowsze odkrycie
Gdy IIS jest ustawione z powrotem na port 80
, po włożeniu http://localhost/
do komputera WHS wyświetla mi się strona ostrzegawcza „Wystąpił problem z certyfikatem bezpieczeństwa tej witryny”. Jeśli mimo to „Kontynuuję”, ten adres URL pojawia się w https://localhost/Remote/logon?ReturnUrl=%2fremote
celu uzyskania dostępu do sieci Web systemu Windows Home Server 2011 Remote dla username
i password
. Teraz nie mogę sobie przypomnieć, ale nie sądzę, aby pierwotnie była http://localhost/
to tylko kwestia poruszona. Wydaje się jednak, że może to wpłynąć na wszelkie próby uzyskania dostępu do hosta lokalnego (bez względu na port).
Co może być głównym problemem
Och, zawiłości sieci! Jedną z rzeczy, która mnie niepokoiła, było to, że dwie strony „częściowo” pojawiły się, a pozostałe wcale. Następnie uruchomienie śledzenia NET Firebuga ujawniło mi, że moim głównym problemem jest to, że mój dostawca usług internetowych działa jako serwer proxy DNS i oczywiście nie znajduje moich stron testowych. Ale ma znaleźć dwa miejsca, które są na żywo na www.
(nie test.
) Adres, i wydaje się służyć do tych, ale obrazy są zablokowane, ponieważ (zakładam) I utworzyły bloki dostępu do plików graficznych, jeśli nie z www.
dla konkretna strona.
To tłumaczy tajemnicę nie pokazanych zdjęć (oczekuj na bezpośrednie localhost:8080
połączenie) i dziwne zachowanie w „częściowym” znajdowaniu tych dwóch z pięciu stron.
Teraz muszę wymyślić, jak poprawnie skonfigurować router lub plik proxy, aby przekierowywać z powrotem na komputer WHS. Korzystam z satelitarnego serwisu internetowego Wildblue, ponieważ jestem poza zasięgiem szybszych połączeń serwisowych. Mają plik „optymalizatora” (nie wiem, czy jest on widoczny dla wszystkich, czy nie, jeśli nie, to w zasadzie taki sam jak ta wersja ), który mogę zmodyfikować i zainstalować w moim systemie lokalnym, aby osiągnąć czego potrzebuję, ale nie jestem pewien, co może być potrzebne.
Jeśli ktoś ma jakieś sugestie dotyczące modyfikacji tego pliku lub sposobu konfiguracji routera Linksys E1200, aby uniknąć wysyłania do serwera proxy, jeśli jest to lokalna witryna, może to być pierwszy (i być może ostatni) krok do rozwiązania moich problemów.
Reprezentatywny kod oparty na zaleceniach Harrymca ... wciąż nie działa
Port IIS ustawiony na :90
.
httdp
plik:
Listen *:80
ServerName localhost:80
vhosts
plik:
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>
Poprzednia aktualizacja: To, co uważałem za główny problem (może być problemem dodatkowym)
Jak sprawić, aby Windows Home Server (z uruchomionymi usługami IIS) przekazywał określone adresy URL hosta lokalnego do portu 8080
, aby serwer Apache (nie usługi IIS) działający na tym samym komputerze pobierał żądanie w celu wyświetlenia strony?
c:\Windows\System32\drivers\etc\hosts
Plik został zmieniony (patrz poniżej), ale zakładam, że nie ma nic wspólnego z przekierowanie do nowego portu. Zakładam także, że IIS pobiera określone test.whatever
żądanie adresu URL na porcie 80
i kieruje je do własnego lokalnego hosta na tym samym porcie.
Pobrałem aplikację zapytania routingu z końcówką na miejscu znalazłem się w badania, ale patrząc na niego, nie jestem pewien, czy to pomoże, czy nie (moja nadzieja było założyć jakieś przekierowanie url opartych na porcie 8080
przez niego). Jestem projektantem stron internetowych, a nie kreatorem sieci. To, jak to wszystko działa, jest dla mnie nieco nieuchwytne.
Możliwy kierunek
Na podstawie tego linku (znalezionego po przeszukaniu opartego na pierwszym komentarzu erikxiv poniżej) próbowałem wykonać następujące czynności w IIS jako przepisanie adresu URL:
Reguła wychodząca:
Dopasowanie: .*
(wydawało się, że test jest w porządku)
Warunki:
Dopasuj dowolne z ... (wydawało się, że pasują do wzorca)
{HTTP_HOST} Matches the Pattern test\.site1\.net
{HTTP_HOST} Matches the Pattern test\.site2\.net
{HTTP_HOST} Matches the Pattern test\.site3\.com
Przepisz działanie:
http://localhost:8080/{R:0} (it would not let me put R:1 like the example)
Ale wydaje się, że nadal nie ma przekazywania!
Poniższe informacje stanowią teraz tło nowej, powyższej prośby.
Podstawowe informacje
Niedawno zmieniłem stary pulpit z systemem Windows XP na Windows Home Server (2011). Stary komputer był także hostem dla lokalnych witryn testowych uruchomionych na instalacji Apache. Przeprowadzenie niektórych badań ujawniło, że uruchomienie Apache na maszynie WHS nie będzie tak trudne, jak się początkowo myślałem (wiele stron twierdzi, że IIS WHS i Apache spowodowałyby problemy, ale kilka z nich nie wspomniało o żadnych problemach, jeśli zostały poprawnie skonfigurowane - - zasadniczo upewnij się, że nie ma konfliktu portów).
Więc zainstalowałem WAMP (wersja 64-bitowa) na komputerze WHS i zmieniłem ustawienia w httpd
pliku konfiguracyjnym Apache , aby nasłuchiwał na porcie, 8080
aby nie było konfliktu z IIS. Skonfigurowałem mój wirtualny plik hosta jak na komputerze XP, tylko ze zmianą portu.
Zasadniczo wszystko wydawało się działać poprawnie (patrz aktualizacja), z wyjątkiem ...
Problem (oryginalny)
Podczas gdy strony w lokalnych witrynach wyświetlają się dobrze, a wszystkie css i javascript działają, każdy plik obrazu nie jest wyświetlany . Informacje o ścieżce są poprawne, o czym świadczy kliknięcie prawym przyciskiem myszy i wybranie View Image Info
(w Firefox ... przy okazji, obrazy nie pokazują się w żadnej przeglądarce, więc nie jest to błąd przeglądarki).
Zauważyłem jednak, że Type
w polu informacji o obrazie wyświetla się text/html
zamiast PNG Image
lub JPEG Image
itp. To jest w poniższych informacjach, gdzie pokazuje informacje o ścieżce (adresie) - w tej sekcji rozpoznaje, że sam plik jest Type
albo Image
albo Background
.
Ale pomimo tego wydaje się, że zamiast rozpoznawać właściwy typ MIME (zakładam) obrazu w HTML (faktycznie HTML wygenerowany przez PHP), zamiast tego próbuje przetworzyć obraz (czy to img
element, czy CSS background-image
) jako tekst, a więc nic mi nie daje! Ale nie mogę zrozumieć, dlaczego. mime
Plik kontrolowania Apache typów MIME jest poprawna. Strony mają następujące nagłówki ...
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="Content-Style-Type" content="text/css" />
... ale to nie powinno powodować problemu (nie działały podczas uruchamiania na XP, podobnie jak na stronie na żywo).
Dlatego szukam przemyślenia na temat:
- Czy moja analiza typu MIME jest problemem (na podstawie aktualizacji, prawdopodobnie nie)?
- Gdzie jeszcze mogę szukać przyczyny problemu i jak go naprawić? Czy nadal może to być konflikt z IIS na WHS, a jeśli tak, to co? Czy może to być coś w php (wydaje się to mało prawdopodobne), a jeśli tak, to co? Co jeszcze mogę sprawdzić w Apache?
Zaktualizowano informacje (z więcej [powiązanych?] Problemów)
Robiąc trochę więcej zamieszania, doszedłem do wniosku, że przynajmniej część problemu wydaje się być zmianą portu :8080
. Po pierwsze, zdałem sobie sprawę, że nie wszystko było tak dobrze, jak myślałem, wchodząc na wszystkie moje strony. Mam taką reprezentację w moim c:\Windows\System32\drivers\etc\hosts
pliku:
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
A ta reprezentacja w moim vhosts
pliku apache :
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>
Oto zachowanie : site1
i site4
pojawiają się, ale bez obrazów. Pozostałe trzy w ogóle się nie pojawiają, ale dają Network Error (dns_unresolved_hostname)
.
Jednak jeśli uzyskam dostęp do pierwszej witryny w vhostach na maszynie WHS za pomocą localhost:8080
adresu URL, wówczas obrazy się pojawią , a którakolwiek strona pierwsza w moim pliku vhosts również się pojawi (co jest oczekiwane); robi to jednak, nawet jeśli wcześniej tego nie robił (więc jeśli przejdę site2
na pierwszą pozycję, zacznie „działać” przez localhost:8080
połączenie).
Wiem, że moje pliki obrazów zwracają 403
( poprawiony, pierwotnie powiedziałem 404 ) błąd przy dostępie przez test.site4.com
składnię w adresie URL i podejrzewam, że moje obrazy są wyświetlane jako, text/html
ponieważ pliki zwracają ten błąd (więc nie sądzę, że to jest teraz problemem typu MIME, podobnie jak brak znalezienia obrazów). Ale dziwne jest to, że ścieżki są poprawne, a pliki inne niż obrazy (javascript i css) wychodzą dobrze.
Wydaje mi się, że może to być coś z przełącznikiem portów na 8080
. Moje problemy są teraz:
- Dlaczego moje hosty i pliki vhosts nie znajdują poprawnie wszystkich witryn (czy jest jakiś inny plik, który muszę zmodyfikować na serwerze Windows Home Server)?
- Na tych stronach działa, dlaczego obrazy nie zostały znalezione (z błędem 403, to znaczy „zabronione”, jak sądzę, co nie ma sensu, jeśli inne pliki w folderach witryny mają dostęp)?
- Dlaczego
localhost:8080
dostęp działa bez względu na pierwsze dwa problemy?
Kilka dalszych informacji
Zażądano ode mnie opublikowania plików dziennika. Odkryłem jednak, że nie było żadnych dzienników, z wyjątkiem (wydaje się) w tych przypadkach, gdy uzyskiwałem dostęp poprzez bezpośrednie localhost:8080
wywołanie do „domyślnej” strony.
Wyłączyłem więc usługi WAMP i podszedłem do adresu URL i odkryłem to samo, co podczas działania WAMP. Wydaje się to wskazywać, że IIS nadal kontroluje nazwy domen, a nie Apache je przechwytuje ( czy ktoś może potwierdzić moje przypuszczenie? ) , A zatem problemem może być nadal przejęcie kontroli nad serwerem WAMP.