Останні відкриття
Коли 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 (працює під управлінням IIS) переадресувати конкретну локальну URL-адресу до порту, 8080
щоб Apache (не IIS), що працює на одній машині, підбирав запит до обслуговування сторінки?
c:\Windows\System32\drivers\etc\hosts
Файл був змінений (див нижче), але я вважаю , що не має нічого спільного з переразводкі до нового порту. IIS, я також припускаю, перебирає конкретний test.whatever
запит URL-адреси на порт 80
і здійснює маршрутизацію до власного локального хоста на тому самому порту.
Я завантажив маршрутизацію запитів додатків з підказки на сайті, який я знайшов, коли я досліджував, але, дивлячись на це, я не впевнений, чи допоможе це чи ні (сподіваюся, було встановити деяку URL-адресу на основі переадресації до порту 8080
). Я веб-дизайнер, а не майстер мережі. Тож як все це працює для мене дещо невловимо.
Можливий напрямок поїхати
Виходячи з цього посилання (знайдено після пошуку більш детального першого коментаря 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 (2011). Старий комп'ютер був також хостом для місцевих тестових сайтів, що працюють під час встановлення Apache. Проведення деяких досліджень показало, що запустити Apache на машині WHS буде не так складно, як я спочатку подумав (багато сайтів кажуть, що IIS WHS та Apache спричинить проблеми, але на деяких з них я зазначив, що взагалі немає проблем, якщо налаштувати правильно- -в основному, переконайтеся, що немає конфлікту порту).
Тому я встановив WAMP (64-бітну версію) на комп'ютер WHS і змінив налаштування у httpd
конфігураційному файлі Apache для прослуховування через порт, 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
І це представлення у моєму vhosts
файлі 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>
Ось така поведінка : site1
і site4
показуються, але без зображень. Інші троє взагалі не з’являються, але дають Network Error (dns_unresolved_hostname)
.
Тим НЕ менше, якщо я досягаю перший сайт в віртуальний хост одночасно на машині WHS, використовуючи localhost:8080
в URL, то образи дійсно з'являються , і в залежності від того сайт першим в моєму файлі ВХости також показує вгору (очікується); однак це робиться так, навіть якби це було раніше, ніж раніше (тому, якщо я переходжу site2
на першу позицію, він починає "працювати" за допомогою localhost:8080
дзвінка).
Я знаю, що мої файли зображень повертають 403
( виправлено, спочатку я сказав 404 ) помилку при доступі через test.site4.com
синтаксис у URL-адресі, і я підозрюю, що мої зображення відображаються так, text/html
оскільки файли повертають цю помилку (тому я не думаю, що це є проблемою типу mime зараз стільки, скільки не вдалося знайти зображення). Але дивно, що шляхи правильні, а файли без зображення (javascript та css) виходять чудовими.
Отже, на мою думку, схоже, що це можливо щось із перемиканням порту 8080
. Зараз мої проблеми:
- Чому мої файли хостів і vhosts неправильно знаходять усі сайти (чи є якийсь інший файл, який мені потрібно змінити на домашньому сервері Windows)?
- На яких сайтах він працює, чому зображення конкретно не знаходять (з помилкою 403, я вважаю, що це "заборонено", що не має сенсу, якщо до інших файлів у папках веб-сайту дозволено доступ)?
- Чому
localhost:8080
доступ працює незалежно від перших двох питань?
Деякі додаткові відомості
Для мене було подано запит на публікацію файлів журналів. Однак я виявив, що журналів не відбувається, за винятком (він з'являється) у тих випадках, коли я мав доступ через прямий localhost:8080
виклик на сайт "за замовчуванням".
Тому я вимкнув послуги WAMP і перейшов до URL-адреси та виявив таку ж поведінку, що і під час запуску WAMP. Це, мабуть, вказує на те, що IIS все ще контролює доменні імена, а не Apache збирає їх (чи може хтось підтвердити моє припущення там? ) , І, таким чином, проблема може бути чимось ще з отриманням контролю над сервером WAMP.