none
Как работает host header routing в IIS? RRS feed

  • Общие обсуждения

  • Столкнулся с задачей:

     

    Есть IIS, один IP-адрес, несколько сайтов на 80 порту, маршрутизация по host header.

    В настройках одного из сайтов устанавливаю правило, в котором в качестве host header указываю IP-адрес сайта. Разумел, что таким образом я смогу обратиться к этому сайту по IP-адресу.

     

    В итоге получил то, что этот сайт, где прописан host header в виде IP-адреса, стал принимать запросы с любым значением HOST в заголовке http. Как будто бы вообще host header не определены для сайта.

    Поведение IIS по моему мнению нелогичное. Искал статьи, описывающие такое поведение, но нигде не нашел (может плохо искал).

     

    Нашел только http://www.microsoft.com/technet/prodtechnol/WindowsServer2003/Library/IIS/288bd8ef-c12d-43bc-9b66-264bc572c87a.mspx?mfr=true

    и хоть там написано, что "To set up multiple Web sites on the same server to take advantage of host-header routing, the host-header names must be DNS domain names that are publicly available and registered with an authorized Internet naming authority.", считаю, это совершенно не означает, что IP-адрес не может использоваться в качестве host header.

     

    Настройки сайта:

    ...

    <IIsWebServer Location ="/LM/W3SVC/37457452"
      AuthFlags="0"
      LogPluginClsid="{FF133363-DE33-11CF-B203A-00AA306111E0}"
      LogType="0"
      ServerAutoStart="TRUE"
      ServerBindings="192.168.16.46:80:test
       192.168.16.46:80:192.168.16.46"
      ServerComment="test"
     >
    </IIsWebServer>
    ...

     

    откликается на любую лабуду, если её прописать в DNS или файле hosts. В общем, если запрос доходит до сервера, то он его обрабатывает и отдает контент.

     

    Если померять снифером, то видим запрос:

     

    (Request Method) GET /test.asp HTTP/1.1
    Accept */*
    Accept-Encoding gzip, deflate
    Accept-Language ru
    Connection Keep-Alive
    Host test1
    User-Agent Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; .NET CLR 1.0.3705; .NET CLR 2.0.50727)

     

    также если по ip-адресу:

     

    (Request Method) GET /test.asp HTTP/1.1
    Accept */*
    Accept-Encoding gzip, deflate
    Accept-Language ru
    Connection Keep-Alive
    Host 192.168.16.46
    User-Agent Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; .NET CLR 1.0.3705; .NET CLR 2.0.50727)

     

    d файл hosts прописано:

    192.168.16.46     test1

     

    Так вот собственно вопрос:

    Где описано такое поведение IIS, в какой статье упоминается, что при использовании ip-адреса в качестве host-header сайт будет принимать любые запросы?

     

    • Изменен тип Nikita Panov 22 сентября 2010 г. 19:56 давность
    • Перемещено Nikita Panov 22 сентября 2010 г. 19:56 IIS (От:Windows Server 2003/2000/NT)
    26 марта 2008 г. 19:08