Wiele witryn IIS na tym samym porcie i adresie IP

Domyślnie podczas instalacji serwera Internetowych usług informacyjnych (IIS) tworzona jest pusta witryna internetowa. ”Domyślnie Web Witryna”Który odpowiada standardowemu portowi internetowemu - TCP 80. W kategoriach IIS oznacza to, że ta strona (Binding) jest podłączona do portu 80. Aby otworzyć tę stronę, po prostu wpisz nazwę serwera IIS („http: // web-srv1”) lub jego adres IP („http: / /10.10.0.88 ”). Jeden serwer sieci Web IIS może obsługiwać dziesiątki i setki witryn, a technicznie można uruchomić kilka witryn internetowych, które nasłuchują i odpowiadają na tym samym porcie (80 lub 443). Jednak z interfejsu Menedżera usług IIS nie jest wcale oczywiste, że można uruchomić drugą witrynę na tym samym hoście bez powiązania jej z innym portem (na przykład 8080). W tym artykule zrozumiemy, jak uruchomić kilka witryn na tym samym serwerze IIS, aby były one powiązane z tym samym portem i adresem IP.

Tak więc, jak powiedzieliśmy wcześniej, wiele witryn można uruchomić na jednym serwerze IIS, jednak aby usługi IIS mogły poprawnie dystrybuować żądania HTTP, każda witryna musi być identyfikowana przez jakąś unikalną wartość. W przypadku witryny IIS składa się ona z trzech atrybutów, których kombinacja dla każdej witryny musi być unikalna. To jest:

  • Numer portu TCP
  • Adres IP
  • nazwa hosta

Informacje o uruchomionych witrynach są przechowywane w atrybucie ServerBindings metabazy IIS w formacie IP: Port: nazwa hosta. Dlatego jeśli chcesz uruchomić kilka witryn na tym samym porcie i adresie IP, musisz użyć unikalnego nagłówka hosta. Co to jest Nagłówek hosta jest częścią żądania HTTP wysyłanego do serwera, które klient wysyła, wskazując, do której konkretnej witryny chce uzyskać dostęp. W związku z tym ten nagłówek hosta musi zostać określony po stronie serwera WWW, a rekord DNS musi zawierać poprawny rekord, który odpowiada nazwie hosta i adresowi IP serwera WWW.

Załóżmy, że mamy już jedną stronę internetową na porcie 80 na IIS. Musimy dodać drugą stronę na tym samym porcie..

W konsoli zarządzania IIS utwórz drugą witrynę (Dodaj Strona internetowa) Z imieniem Testit , których pliki będą przechowywane w katalogu c: \ inetpub \Testit (nazwa hosta nie jest jeszcze określona).

Po kliknięciu „OK” pojawi się ostrzeżenie, że nie można użyć powiązania *: 80 dla dwóch witryn, tj. tylko jeden z nich może pracować jednocześnie.

Zgadzamy się z tym ostrzeżeniem. Mamy więc drugą stronę, również powiązaną z portem 80, ale nie można jej uruchomić bez zatrzymania pierwszej strony.

Aby utworzyć unikalne powiązanie, podaj inną nazwę dla drugiej witryny (nazwa hosta). Kliknij RMB na stronie Testit i wybierz pozycję menu Edytuj Wiązania. Wybierz żądane wiązanie i kliknij Edytuj.

W terenie Host Imię podaj unikalną nazwę hosta, do której użytkownicy powinni uzyskać dostęp, na przykład TestSite.

Możesz także skonfigurować wiązanie z wiersza poleceń. W tym przykładzie w IIS 7 i nowszych polecenie konfiguracji wiązania wygląda następująco:

C: \ Windows \ System32 \ inetsrv \ appcmd.exe set site /site.name:"TestSite "/+bindings.►protocol='http',bindingInformation='*:80:TestSite ']

Teraz możesz uruchomić drugą stronę internetową.

Wszystko, co pozostaje do zrobienia, to dodać alias dla serwera w DNS (rekord A lub CNAME) wskazujący adres IP serwera WWW lub jego nazwę.

Utwórz CNAME wpisu nazwy TestSite można dokonać za pomocą konsoli DNS (dnsmgmt.msc), określ nazwę domeny swojego serwera IIS jako nazwę FQDN hosta docelowego.

Możesz także utworzyć taki rekord za pomocą PowerShell:

Add-DnsServerResourceRecordCName -HostNameAlias ​​web-srv1.contoso.loc -Name testsite -ZoneName contoso.loc

Teraz w przeglądarce spróbuj otworzyć stronę http: // TestSite. Musi zostać pomyślnie otwarty.

Kilka innych przydatnych punktów, o których warto wspomnieć.

Jeśli używasz lokalnego serwera IIS, mapowanie nazw witryn na adres IP serwera odbywa się za pomocą pliku C: \ Windows \ system32 \ drivers \ etc \ hosts.

Ustawienia powiązania są przechowywane w pliku konfiguracyjnym IIS (C: \ Windows \ System32 \ inetsrv \ config \ applicationHost.config) w sekcji         

W naszym przykładzie ta sekcja zawiera następujące dane:
























Analogicznie można hostować i obsługiwać kilkaset witryn na tym samym porcie na serwerze sieci Web IIS.