Недавнее открытие
Когда IIS настроен на порт 80
, когда я помещаю http://localhost/
на компьютер WHS, он выдает мне предупреждение "Есть проблема с сертификатом безопасности этого сайта". Если я все равно продолжу , этот URL-адрес появится по адресу https://localhost/Remote/logon?ReturnUrl=%2fremote
для удаленного веб-доступа Windows Home Server 2011 для username
и password
. Теперь я не могу вспомнить наверняка, но я не верю, что изначально только http://localhost/
поднял эту проблему. Однако кажется, что это может повлиять на любые попытки доступа к localhost (независимо от порта).
Что может быть на самом деле основной проблемой
О тонкости сетей! Одна вещь, которая продолжала беспокоить меня, заключалась в том, что два сайта "частично" появились, а другие - совсем нет. Затем, отслеживание NET в Firebug показало мне, что моя главная проблема заключается в том, что мой провайдер выступает в роли DNS-прокси и, конечно, он не находит мои тестовые сайты. Но он находит два сайта, которые живут на www.
(не test.
) адрес, и, кажется, обслуживает их, но изображения заблокированы, потому что (я предполагаю) я настроил блоки для доступа к файлам изображений, если не с www.
для конкретного сайта.
Это объясняет загадку не отображаемых изображений (ожидайте на прямом вызове localhost:8080
) и странное поведение при "частичном" поиске этих двух конкретных сайтов из пяти.
Теперь мне нужно выяснить, как правильно настроить мой маршрутизатор или прокси-файл для перенаправления на мой компьютер WHS. Я пользуюсь услугой спутникового интернета Wildblue, так как я нахожусь за пределами зоны быстрого соединения. У них есть файл "оптимизатора" (я не знаю, доступен ли он всем для просмотра или нет, если нет, то он в основном совпадает с этой версией), который я могу изменить и включить в свою локальную систему для достижения что мне нужно, но я точно не знаю, что мне нужно делать там.
Если у кого-то есть какие-либо предложения по изменению этого файла или по настройке маршрутизатора Linksys E1200, чтобы избежать отправки на прокси-сервер, если это локальный сайт, то это может быть первым (и, возможно, последним) шагом для решения моих проблем.
Репрезентативный код, основанный на рекомендациях Harrymc ... все еще не работает
Порт IIS установлен на :90
.
httdp
файл:
Listen *:80
ServerName localhost:80
файл vhosts
:
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>
Предыдущее обновление: то, что я считал главной проблемой (может быть подзадачей)
Как заставить Windows Home Server (с IIS) переадресовывать определенные локальные URL-адреса на порт 8080
чтобы Apache (не IIS), работающий на той же машине, принимал запрос на обслуживание страницы?
Файл c:\Windows\System32\drivers\etc\hosts
был изменен (см. Ниже), но я предполагаю, что это не имеет никакого отношения к перенаправлению на новый порт. Я также предполагаю, что IIS выбирает конкретный test.whatever
URL-запрос на порту 80
и направляет его на собственный локальный хост на том же порту.
Я скачал Application Request Routing из подсказки на сайте, который я нашел в исследовании, но, глядя на него, я не уверен, поможет ли это или нет (я надеялся установить им переадресацию на порт 8080
на основе URL), Я веб-дизайнер, а не сетевой мастер. Так как все это работает, для меня несколько неуловимо.
Возможное направление идти
Основываясь на этой ссылке (найденной после поиска на основе первого комментария erikxiv ниже), я попытался сделать следующее в IIS для перезаписи URL:
Исходящее правило:
Матч:. .*
(Вроде бы все нормально)
условия:
Сопоставить с любым из ... (похоже, что тестирование соответствует шаблону, все в порядке)
{HTTP_HOST} Matches the Pattern test\.site1\.net
{HTTP_HOST} Matches the Pattern test\.site2\.net
{HTTP_HOST} Matches the Pattern test\.site3\.com
Переписать действие:
http://localhost:8080/{R:0} (it would not let me put R:1 like the example)
Но, похоже, пересылки по-прежнему нет!
Информация, представленная ниже, теперь является основой для нового, вышеупомянутого запроса.
Справочная информация
Недавно я изменил старый рабочий стол с Windows XP на Windows Home Server (2011). Старый компьютер также являлся хостом для локальных тестовых сайтов, работающих при установке Apache. Проведение некоторых исследований показало, что запуск Apache на компьютере WHS не будет таким сложным, как я сначала подумал (многие сайты говорят, что IIS WHS и Apache могут вызвать проблемы, но некоторые из них, как я обнаружил, вообще не упоминали о проблемах при правильной настройке). - в принципе, убедитесь, что нет конфликта портов).
Поэтому я установил WAMP (64-разрядная версия) на компьютер WHS и изменил настройки в файле конфигурации Apache httpd
для прослушивания на порту 8080
чтобы не было конфликта с IIS. Я установил свой файл виртуального хоста, как на компьютере с XP, только с изменением порта.
В принципе, все, кажется, работает нормально (однако, см. Обновление), кроме...
(Оригинальный) выпуск
В то время как страницы на локальных сайтах работают нормально, и все css и javascript работают, каждый файл изображения не отображается. Информация о пути верна, о чем свидетельствует щелчок правой кнопкой мыши и выбор « View Image Info
(кстати, в Firefox ... изображения не отображаются ни в одном браузере, поэтому это не ошибка браузера).
Однако я заметил, что в поле « Type
в изображении» отображается text/html
, а не PNG Image
JPEG Image
и т.д. Это информация ниже, где он отображает информацию о пути (адресе) - раздел, он признает, что сам файл имеет Type
Image
или Background
.
Но, несмотря на этот факт, кажется, что вместо того, чтобы распознавать правильный тип mime (я предполагаю) изображения в html (на самом деле генерируемый php html), вместо этого он пытается обработать изображение (будь то элемент img
или css background-image
), как текст, и, следовательно, ничего не давая мне! Но я не могу понять, почему. Файл mime
управляющий MIME-типами Apache, правильный. Страницы имеют следующие заголовки ...
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="Content-Style-Type" content="text/css" />
... но они не должны вызывать проблему (они не возникали при работе на XP, и при этом они не работают на живом сайте).
Поэтому я ищу мысли о:
- Является ли мой анализ MIME-типа проблемой правильной (основываясь на обновлении, возможно, нет)?
- Где еще я могу посмотреть, что может быть причиной проблемы, и как ее исправить? Может ли быть конфликт с IIS на WHS, и если да, то что? Может ли это быть что-то в php (это кажется маловероятным), и если да, то что? Что еще я могу проверить в Apache?
Обновленная информация (с более [связано?] Вопросы)
Продолжая возиться, я пришел к выводу, что, по крайней мере, частично проблема заключается в переходе на порт :8080
. Во-первых, я понял, что не все было так хорошо, как я думал, чтобы попасть на все мои сайты. У меня есть это представление в моем файле c:\Windows\System32\drivers\etc\hosts
:
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
И это представление в моем файле apache vhosts
:
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>
Вот поведение: site1
и site4
обнаруживаются, но без изображений. Другие три не отображаются вообще, но выдают Network Error (dns_unresolved_hostname)
.
Однако, если я получаю доступ к первому сайту в vhosts на компьютере WHS, используя localhost:8080
в URL-адресе, то изображения действительно отображаются, и любой сайт, который находится первым в моем файле vhosts, также обнаруживается (что ожидается); тем не менее, он делает это, даже если это было то, чего раньше не было (поэтому, если я переместил site2
на первую позицию, он начал бы "работать" через вызов localhost:8080
).
Я знаю, что мои файлы изображений возвращают ошибку 403
(исправлено, изначально я сказал 404) при обращении через синтаксис test.site4.com
в URL, и я подозреваю, что мои изображения отображаются как text/html
потому что файлы возвращают это ошибка (так что я не думаю, что это проблема типа пантомимы, так как не удается найти изображения). Но странным является то, что пути правильные, а файлы без изображений (javascript и css) подходят хорошо.
Так что, на мой взгляд, это может быть что-то с переключателем порта на 8080
. Мои проблемы сейчас:
- Почему мои файлы hosts и vhosts неправильно находят все сайты (есть ли какой-то другой файл, который мне нужно изменить на Windows Home Server)?
- На тех сайтах, для которых это работает, почему изображения не могут быть найдены (с ошибкой 403, которая, по моему мнению, "запрещена", не имеет смысла, если другим файлам в папках сайта разрешен доступ)?
- Почему доступ
localhost:8080
работает независимо от того, что связано с первыми двумя проблемами?
Некоторая дополнительная информация
Был сделан запрос на размещение файлов журнала. Однако я обнаружил, что не было никаких журналов, за исключением (кажется) в тех случаях, когда я обращался через прямой вызов localhost:8080
к сайту "по умолчанию".
Поэтому я отключил службы WAMP, пошел к URL-адресам и обнаружил то же поведение, что и при работе WAMP. Похоже, это указывает на то, что IIS все еще контролирует доменные имена, а не Apache, собирающий их (может ли кто-нибудь подтвердить мое предположение?), И, таким образом, проблема может заключаться в том, что сам по себе контроль передается на сервер WAMP.