Více webů IIS na stejném portu a IP

Ve výchozím nastavení je během instalace serveru IIS vytvořen prázdný web. “Výchozí Web Web„Což odpovídá standardnímu webovému portu - TCP 80. Pokud jde o IIS, znamená to, že tento web (Binding) je připojen k portu 80. Chcete-li tento web otevřít, stačí zadat název serveru IIS („http: // web-srv1“) nebo jeho IP adresu („http: / /10,10,88 ”). Jeden webový server IIS může obsluhovat desítky a stovky webů a technicky je možné provozovat několik webů, které poslouchají a reagují na stejném portu (80 nebo 443). Z rozhraní Správce služby IIS však není vůbec zřejmé, že můžete spustit druhý web na stejném hostiteli, aniž byste jej vázali na jiný port (například 8080). V tomto článku pochopíme, jak spustit několik webů na stejném serveru IIS tak, aby byly vázány na stejný port a IP adresu..

Jak jsme již dříve řekli, na jednom serveru IIS lze spustit mnoho webů, aby však služba IIS správně distribuovala požadavky HTTP, musí být každý web identifikován nějakou jedinečnou hodnotou. Pro web IIS se skládá ze tří atributů, jejichž kombinace pro každý web musí být jedinečná. Toto je:

  • Číslo portu TCP
  • IP adresa
  • název hostitele

Informace o spuštěných webech jsou uloženy v atributu ServerBindings metabáze IIS ve formátu IP: Port: Hostname. Pokud tedy potřebujete spouštět několik webů na stejném portu a IP adrese, musíte použít jedinečnou hlavičku hostitele. Co je to? Hlavička hostitele je součástí požadavku HTTP na server, který klient odešle, což naznačuje, ke kterému konkrétnímu serveru chce přistupovat. V souladu s tím musí být tato hlavička hostitele uvedena na boku webového serveru a záznam DNS musí obsahovat správný záznam, který odpovídá názvu hostitele a ip adrese webového serveru..

Předpokládejme tedy, že již máme jeden web na portu 80 na IIS. Musíme přidat druhý web na stejný port..

V konzole pro správu služby IIS vytvořte druhý web (Přidat Web) Se jménem Testite , jejichž soubory budou uloženy v adresáři c: \ inetpub \Testite (název hostitele zatím není uveden).

Po kliknutí na „OK“ se zobrazí varování, že vázání nemůžete použít *: 80 pro dva weby, tj. pouze jeden z nich může pracovat najednou.

Souhlasíme s tímto upozorněním. Máme tedy druhý web, také vázaný na port 80, ale nemůžete jej spustit bez zastavení prvního webu.

Chcete-li vytvořit jedinečnou vazbu, zadejte pro druhý web jiný název (název hostitele). Na webu klikněte na RMB Testite a vyberte položku nabídky Upravit Vázání. Vyberte požadovanou vazbu a klikněte na Upravit.

Na poli Hostitel Jméno zadejte jedinečný název hostitele, ke kterému by uživatelé měli přistupovat, například TestSite.

Vazbu můžete také nakonfigurovat z příkazového řádku. V tomto příkladu bude pro IIS 7 a novější vypadat příkaz nastavení vazby takto:

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

Nyní můžete spustit druhý web.

Zbývá pouze přidat alias pro server do DNS (záznam A nebo CNAME) označující IP adresu webového serveru nebo jeho jméno.

Vytvořit CNAME zadání názvu TestSite lze provést pomocí konzoly DNS (dnsmgmt.msc), zadejte název domény serveru IIS jako úplný název domény cílového hostitele.

Takový záznam můžete také vytvořit pomocí PowerShell:

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

Nyní v prohlížeči zkuste web otevřít http: // TestSite. Musí se úspěšně otevřít.

Některé další užitečné body, které stojí za zmínku.

Pokud používáte místní server IIS, mapování názvů webů na IP adresu serveru se provádí prostřednictvím souboru C: \ Windows \ system32 \ drivers \ etc \ hosts.

Nastavení vazby jsou uložena v konfiguračním souboru služby IIS (C: \ Windows \ System32 \ inetsrv \ config \ applicationHost.config) v sekci         

V našem příkladu obsahuje tato část následující údaje:
























Analogicky můžete hostit a provozovat několik stovek webů na stejném portu na webovém serveru IIS.