Ejecución de varios sitios web de IIS en el mismo puerto o dirección IP

Cuando instala Internet Information Services (IIS) en Windows, aparece un «Sitio web predeterminado”Se crea de forma predeterminada y escucha en el puerto HTTP web estándar – TCP 80. En términos de IIS, esto significa que este sitio está vinculado al puerto TCP / 80. Para abrir este sitio, simplemente ingrese el nombre del servidor IIS (“http://web-srv1”) o su dirección IP (“http://192.168.1.100”) en su navegador. Un solo servidor web IIS puede servir a docenas y cientos de sitios web, y puede ejecutar varios sitios web en él, escuchando y respondiendo en el mismo puerto TCP (80, 443 o lo que sea). Sin embargo, la interfaz del Administrador de IIS no hace evidente que pueda alojar otro sitio web sin vincularlo a otro puerto (por ejemplo, 8080). En este artículo, mostraremos cómo alojar varios sitios web en el mismo servidor IIS y vincularlos al mismo puerto y dirección IP, oa diferentes direcciones IP.

Enlace del sitio web de IIS

Un único servidor IIS web que se ejecuta en Windows Server puede alojar varios sitios web. Sin embargo, para que IIS distribuya las solicitudes HTTP correctamente, cada sitio web debe identificarse con un valor único. En el caso de un sitio web IIS, consta de tres atributos que conforman una combinación única para cada sitio web. Estos son:

  • un número de puerto TCP
  • una dirección IP
  • un encabezado de host (nombre de host)

La información sobre los sitios web alojados se almacena en el ServerBindings atributo de la metabase de IIS en el siguiente formato: IP:Port:Hostname. Por lo tanto, si desea alojar varios sitios web en el mismo puerto y dirección IP, tendrá que utilizar un único Encabezado de host. ¿Qué es? El encabezado del host es parte de una solicitud HTTP al servidor enviada por un cliente que especifica a qué sitio web está dirigido. En consecuencia, este encabezado de host debe especificarse en el lado del servidor web, y el DNS contiene el registro correcto que coincide con el nombre de host y la dirección IP del servidor web IIS.

Supongamos que tiene un sitio web que se ejecuta en IIS y escucha el puerto 80. Y debe vincular el segundo sitio web al mismo puerto.

En el Administrador de IIS, cree otro sitio web (Agregar sitio web) con el nombre TestSite, cuyos archivos se ubicarán en c: inetpub TestSite (aún no especifique el nombre de host).

Después de hacer clic en Aceptar, aparece una advertencia de que no puede utilizar el enlace *: 80 para ambos sitios.

Add Website
The binding '*:80:' is assigned to another site. If you assign the same binding to this site, you will only be able to start one of the sites. Are you sure that you want to add this duplicate binding?

el enlace 80 se asigna a otro sitio

Acepta esta advertencia. Si tiene otro sitio vinculado al puerto 80, no puede iniciarlo sin detener el primer sitio.

segundo sitio en iis

Alojamiento de varios sitios web en IIS mediante encabezados de host

Para crear un enlace único, especifique otro nombre (Nombre de host) para el segundo sitio web de IIS. Botón derecho del ratón Sitio de prueba y seleccione Editar Fijaciones. Seleccione la encuadernación que necesita y haga clic en Editar.

Especifique el nombre de host único al que se dirigirán los usuarios, como TestSite, en el Anfitrión Nombre campo.

enlace del sitio iis

Puede configurar el enlace del sitio de IIS mediante el símbolo del sistema. En este caso, para IIS 7 o más reciente, el comando para configurar el enlace se ve así:

C:WindowsSystem32inetsrvappcmd.exe set site /site.name:testsite /+bindings.[protocol="http",bindingInformation='*:80:testsite']

Ahora también puede iniciar el segundo sitio web.

iniciar el segundo sitio iis

Todo lo que tiene que hacer es agregar un alias DNS para el servidor (A o CNAME) para que apunte a la dirección IP o al nombre de host de su servidor web IIS. Si está utilizando un dominio de Active Directory, debe crear registros DNS en el controlador de dominio.

Puedes crear un CNAME registro para el nombre del sitio de prueba en la consola DNS (dnsmgmt.msc) y especifique el nombre de dominio de su servidor IIS como host de destino FQDN.

agregar alias (cname) en dns

Este registro DNS también se puede crear con PowerShell:

Add-DnsServerResourceRecordCName -HostNameAlias web-srv1.woshub.com -Name testsite -ZoneName woshub.com

Intenta abrir http://TestSite en su navegador. Debería abrirse correctamente.

varios sitios web de iis en el mismo puerto 80 http

Aquí hay algunas notas útiles que vale la pena mencionar.

Si está utilizando un servidor IIS independiente, la asignación de los nombres del sitio a la dirección IP del servidor se realiza a través del archivo C:Windowssystem32driversetchosts

La configuración de enlace se almacena en la sección del archivo de configuración IIS del archivo de configuración IIS. C:WindowsSystem32inetsrvconfigapplicationHost.config.

En nuestro caso, esta sección contiene los siguientes datos:

<sites>
<site name="Default Web Site" id="1">
<application path="http://woshub.com/">
<virtualDirectory path="http://woshub.com/" physicalPath="%SystemDrive%inetpubwwwroot" />
</application>
<bindings>
<binding protocol="http" bindingInformation="*:80:" />
</bindings>
</site>
<site name="TestSite" id="2" serverAutoStart="true">
<application path="http://woshub.com/" applicationPool="TestSite">
<virtualDirectory path="http://woshub.com/" physicalPath="C:inetpubTestSite" />
</application>
<bindings>
<binding protocol="http" bindingInformation="*:80:TestSite" />
</bindings>
</site>
<siteDefaults>
<logFile logFormat="W3C" directory="%SystemDrive%inetpublogsLogFiles" />
<traceFailedRequestsLogging directory="%SystemDrive%inetpublogsFailedReqLogFiles" />
</siteDefaults>
<applicationDefaults applicationPool="DefaultAppPool" />
<virtualDirectoryDefaults allowSubDirConfig="true" />
</sites>

Asimismo, puede alojar y ejecutar varios cientos de sitios en el mismo puerto de su servidor web IIS.

Ejecute varios sitios con diferentes direcciones IP en IIS

Ahora intentemos ejecutar dos sitios en el servidor web IIS en diferentes direcciones IP. En primer lugar, debe agregar una interfaz VLAN separada en Windows Server o simplemente asignar una dirección IP adicional (alias) a su NIC.

En este ejemplo, el servidor tiene la dirección IP principal 192.168.13.100 y agregaré un alias de IP adicional 192.168.13.101 al mismo adaptador de red:

Get-NetIPAddress | ft IPAddress, InterfaceAlias, SkipAsSource
New-NetIPAddress –IPAddress 192.168.13.101 –PrefixLength 24 –InterfaceAlias “Ethernet” –SkipAsSource $True

Ahora necesita crear un registro A para el nuevo sitio en el servidor DNS (además crearemos un registro PTR en la zona inversa con el –CreatePtr opción):

Add-DnsServerResourceRecordA -Name NewSite3 -IPv4Address 192.168.13.101 -ZoneName woshub.com -TimeToLive 01:00:00 –CreatePtr

Queda por abrir la configuración de Enlace del sitio y vincular el sitio a la dirección IP adicional de su host.

Administrar enlaces de sitios de IIS con PowerShell

Puede administrar el enlace de sitios en un servidor IIS mediante PowerShell. Para ello se utiliza el módulo WebAdministration:

Import-Module WebAdministration

Muestra información sobre todos los sitios IIS disponibles y sus enlaces:

Get-IISSite

O sobre un solo sitio:

(Get-Website -Name NewSite).bindings.Collection

protocol bindingInformation sslFlags
-------- ------------------ --------
http 192.168.13.101:80:NewSite3 0

Para cambiar el enlace de este sitio (puede cambiar las direcciones IP, el puerto o el nombre):

Set-WebBinding -Name NewSite1 -BindingInformation "192.168.13.101:80:NewSite1" -PropertyName 'Port' -Value '8080'
Set-WebBinding -Name NewSite1 -BindingInformation "192.168.13.101:8080:NewSite1" -PropertyName 'IPAddress' -Value '192.168.13.100'

Para agregar un nuevo enlace al sitio IIS específico, ejecute:

New-IISSiteBinding -Name NewSite1 -BindingInformation "*:9090:" -Protocol http

Para eliminar una encuadernación:

Remove-IISSiteBinding -Name NewSite1 -BindingInformation "*:9090:"

Por lo tanto, puede ejecutar varios sitios en el servidor web IIS tanto en diferentes direcciones IP como en la misma dirección IP y número de puerto TCP.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *