Computer >> 컴퓨터 >  >> 체계 >> Windows Server

동일한 포트 또는 IP 주소에서 여러 IIS 웹 사이트 실행

Windows에 인터넷 정보 서비스(IIS)를 설치할 때 빈 "기본 웹 사이트 "는 기본적으로 생성되며 표준 웹 HTTP 포트인 TCP 80에서 수신 대기합니다. . IIS 용어로 이것은 이 사이트가 포트 TCP/80에 바인딩되어 있음을 의미합니다. 이 사이트를 열려면 IIS 서버의 이름(“https://web-srv1” ) 또는 해당 IP 주소(“https://192.168.1.100” ) 브라우저에서. 단일 IIS 웹 서버는 수십, 수백 개의 웹 사이트를 제공할 수 있으며 동일한 TCP 포트(80, 443 등)에서 수신 대기하고 응답하는 여러 웹 사이트를 실행할 수 있습니다. 그러나 IIS 관리자의 인터페이스는 다른 포트(예:8080)에 바인딩하지 않고 다른 웹사이트를 호스팅할 수 있다는 것을 분명히 하지 않습니다. 이 기사에서는 동일한 IIS 서버에서 여러 웹 사이트를 호스팅하고 동일한 포트와 IP 주소 또는 다른 IP 주소에 바인딩하는 방법을 보여줍니다.

동일한 포트 또는 IP 주소에서 여러 IIS 웹 사이트 실행

내용:

  • IIS 웹 사이트 바인딩
  • 호스트 헤더를 사용하여 IIS에서 여러 웹사이트 호스팅
  • IIS에서 IP 주소가 다른 여러 사이트 실행
  • PowerShell을 사용하여 IIS 사이트 바인딩 관리

IIS 웹 사이트 바인딩

Windows Server에서 실행되는 단일 웹 IIS 서버는 여러 웹 사이트를 호스팅할 수 있습니다. 그러나 IIS가 HTTP 요청을 올바르게 배포하려면 각 웹 사이트를 고유한 값으로 식별해야 합니다. IIS 웹 사이트의 경우 각 웹 사이트에 대해 고유한 조합을 구성하는 세 가지 속성으로 구성됩니다. 다음과 같습니다.

  • TCP 포트 번호
  • IP 주소
  • 호스트 헤더(호스트 ​​이름)

호스팅된 웹사이트에 대한 정보는 ServerBindings에 저장됩니다. 다음 형식의 IIS 메타베이스 속성:IP:Port:Hostname . 따라서 동일한 포트와 IP 주소에서 여러 웹사이트를 호스팅하려면 고유한 호스트 헤더를 사용해야 합니다. . 그것은 무엇입니까? 호스트 헤더는 주소가 지정된 웹 사이트를 지정하는 클라이언트가 보낸 서버에 대한 HTTP 요청의 일부입니다. 따라서 이 호스트 헤더는 웹 서버 측에 지정되어야 하며 DNS에는 IIS 웹 서버의 호스트 이름 및 IP 주소와 일치하는 올바른 레코드가 포함되어 있어야 합니다.

IIS에서 실행되고 80 포트를 수신하는 웹 사이트가 있다고 가정해 보겠습니다. 그리고 두 번째 웹사이트를 동일한 포트에 바인딩해야 합니다.

IIS 관리자에서 다른 웹사이트를 만듭니다(웹사이트 추가 ) 이름이 TestSite인 경우 파일은 c:\inetpub\TestSite에 위치합니다(아직 호스트 이름을 지정하지 않음).

동일한 포트 또는 IP 주소에서 여러 IIS 웹 사이트 실행

확인을 클릭하면 바인딩 *:8을 사용할 수 없다는 경고가 나타납니다. 0 두 사이트에 모두 적용됩니다.

웹사이트 추가 바인딩 '*:80:'이 다른 사이트에 할당되었습니다. 이 사이트에 동일한 바인딩을 할당하면 사이트 중 하나만 시작할 수 있습니다. 이 중복 바인딩을 추가하시겠습니까?

동일한 포트 또는 IP 주소에서 여러 IIS 웹 사이트 실행

이 경고에 동의합니다. 따라서 포트 80에 바인딩된 다른 사이트가 있으므로 첫 번째 사이트를 중지하지 않고는 시작할 수 없습니다.

동일한 포트 또는 IP 주소에서 여러 IIS 웹 사이트 실행

호스트 헤더를 사용하여 IIS에서 여러 웹사이트 호스팅

고유한 바인딩을 만들려면 두 번째 IIS 웹 사이트에 대해 다른 이름(호스트 이름)을 지정합니다. TestSite를 마우스 오른쪽 버튼으로 클릭합니다. 수정을 선택합니다. 바인딩 . 필요한 바인딩을 선택하고 수정을 클릭합니다. .

호스트에서 TestSite와 같이 사용자가 주소를 지정할 고유 호스트 이름을 지정합니다. 이름 필드.

동일한 포트 또는 IP 주소에서 여러 IIS 웹 사이트 실행

명령 프롬프트를 사용하여 IIS 사이트 바인딩을 구성할 수 있습니다. 이 경우 IIS 7 이상의 경우 바인딩을 구성하는 명령은 다음과 같습니다.

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

이제 두 번째 웹사이트도 시작할 수 있습니다.

동일한 포트 또는 IP 주소에서 여러 IIS 웹 사이트 실행

IIS 웹 서버의 IP 주소나 호스트 이름을 가리키도록 서버에 대한 DNS 별칭(A 또는 CNAME)을 추가하기만 하면 됩니다. Active Directory 도메인을 사용하는 경우 도메인 컨트롤러에서 DNS 레코드를 생성해야 합니다.

CNAME을(를) 만들 수 있습니다. DNS 콘솔에서 이름 testsite에 대한 기록(dnsmgmt.msc ) IIS 서버의 도메인 이름을 FQDN 대상 호스트로 지정합니다.

동일한 포트 또는 IP 주소에서 여러 IIS 웹 사이트 실행

이 DNS 레코드는 PowerShell을 사용하여 만들 수도 있습니다.

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

https://TestSite를 열어보십시오. 브라우저에서. 성공적으로 열릴 것입니다.

동일한 포트 또는 IP 주소에서 여러 IIS 웹 사이트 실행

다음은 언급할 가치가 있는 몇 가지 유용한 참고 사항입니다.

독립 실행형 IIS 서버를 사용하는 경우 서버의 IP 주소에 대한 사이트 이름 매핑은 C:\Windows\system32\drivers\etc\hosts 파일을 통해 수행됩니다.

바인드 설정은 IIS 구성 파일 C:\Windows\System32\inetsrv\config\applicationHost.config의 IIS 구성 파일 섹션에 저장됩니다. .

우리의 경우 이 섹션에는 다음 데이터가 포함되어 있습니다.

<바인딩><바인딩 프로토콜="http" bindingInformation="*:80:" /><사이트 이름="TestSite" id="2" serverAutoStart="true"><응용 프로그램 경로="/" applicationPool="TestSite"><바인딩><바인딩 프로토콜="http" bindingInformation="*:80:TestSite" />

마찬가지로 IIS 웹 서버의 동일한 포트에서 수백 개의 사이트를 호스팅하고 실행할 수 있습니다.

IIS에서 다른 IP 주소로 여러 사이트 실행

이제 IIS 웹 서버에서 서로 다른 IP 주소의 두 사이트를 실행해 보겠습니다. 먼저 Windows Server에 별도의 VLAN 인터페이스를 추가하거나 NIC에 추가 IP 주소(별칭)를 할당하기만 하면 됩니다.

이 예에서 서버의 기본 IP 주소는 192.168.13.100이며 동일한 네트워크 어댑터에 IP 별칭 192.168.13.101을 추가하겠습니다.

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

이제 DNS 서버의 새 사이트에 대한 A 레코드를 생성해야 합니다(–CreatePtr를 사용하여 역방향 영역에 PTR 레코드를 추가로 생성합니다. 옵션):

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

사이트 바인딩 설정을 열고 사이트를 호스트의 추가 IP 주소에 바인딩해야 합니다.

PowerShell을 사용하여 IIS 사이트 바인딩 관리

PowerShell을 사용하여 IIS 서버에서 사이트 바인딩을 관리할 수 있습니다. 이를 위해 WebAdministration 모듈이 사용됩니다.

Import-Module WebAdministration

사용 가능한 모든 IIS 사이트 및 해당 바인딩에 대한 정보 표시:

Get-IISSite

또는 단일 사이트에 대해:

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

프로토콜 바인딩 정보 sslFlags-------- ------------------ --------http 192.168.13.101:80:NewSite3 0 

이 사이트의 바인딩을 변경하려면(IP 주소, 포트 또는 이름을 변경할 수 있음):

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'

특정 IIS 사이트에 새 바인딩을 추가하려면 다음을 실행하십시오.

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

바인딩을 제거하려면:

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

따라서 다른 IP 주소와 동일한 IP 주소 및 TCP 포트 번호에서 IIS 웹 서버의 여러 사이트를 실행할 수 있습니다.