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 주소에 바인딩하는 방법을 보여줍니다.
내용:
- 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에 위치합니다(아직 호스트 이름을 지정하지 않음).
확인을 클릭하면 바인딩 *:8을 사용할 수 없다는 경고가 나타납니다. 0 두 사이트에 모두 적용됩니다.
웹사이트 추가 바인딩 '*:80:'이 다른 사이트에 할당되었습니다. 이 사이트에 동일한 바인딩을 할당하면 사이트 중 하나만 시작할 수 있습니다. 이 중복 바인딩을 추가하시겠습니까?
이 경고에 동의합니다. 따라서 포트 80에 바인딩된 다른 사이트가 있으므로 첫 번째 사이트를 중지하지 않고는 시작할 수 없습니다.
호스트 헤더를 사용하여 IIS에서 여러 웹사이트 호스팅
고유한 바인딩을 만들려면 두 번째 IIS 웹 사이트에 대해 다른 이름(호스트 이름)을 지정합니다. TestSite를 마우스 오른쪽 버튼으로 클릭합니다. 수정을 선택합니다. 바인딩 . 필요한 바인딩을 선택하고 수정을 클릭합니다. .
호스트에서 TestSite와 같이 사용자가 주소를 지정할 고유 호스트 이름을 지정합니다. 이름 필드.
명령 프롬프트를 사용하여 IIS 사이트 바인딩을 구성할 수 있습니다. 이 경우 IIS 7 이상의 경우 바인딩을 구성하는 명령은 다음과 같습니다.
C:\Windows\System32\inetsrv\appcmd.exe set site /site.name:testsite /+bindings.[protocol='http',bindingInformation='*:80:testsite']
이제 두 번째 웹사이트도 시작할 수 있습니다.
IIS 웹 서버의 IP 주소나 호스트 이름을 가리키도록 서버에 대한 DNS 별칭(A 또는 CNAME)을 추가하기만 하면 됩니다. Active Directory 도메인을 사용하는 경우 도메인 컨트롤러에서 DNS 레코드를 생성해야 합니다.
CNAME을(를) 만들 수 있습니다. DNS 콘솔에서 이름 testsite에 대한 기록(dnsmgmt.msc
) IIS 서버의 도메인 이름을 FQDN 대상 호스트로 지정합니다.
이 DNS 레코드는 PowerShell을 사용하여 만들 수도 있습니다.
Add-DnsServerResourceRecordCName -HostNameAlias web-srv1.woshub.com -Name testsite -ZoneName woshub.com
https://TestSite
를 열어보십시오. 브라우저에서. 성공적으로 열릴 것입니다.
다음은 언급할 가치가 있는 몇 가지 유용한 참고 사항입니다.
독립 실행형 IIS 서버를 사용하는 경우 서버의 IP 주소에 대한 사이트 이름 매핑은 C:\Windows\system32\drivers\etc\hosts
파일을 통해 수행됩니다.
바인드 설정은 IIS 구성 파일 C:\Windows\System32\inetsrv\config\applicationHost.config
의 IIS 구성 파일
우리의 경우 이 섹션에는 다음 데이터가 포함되어 있습니다.
<사이트 이름="TestSite" id="2" serverAutoStart="true"><응용 프로그램 경로="/" applicationPool="TestSite"> <바인딩><바인딩 프로토콜="http" bindingInformation="*:80:" /> <바인딩><바인딩 프로토콜="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 웹 서버의 여러 사이트를 실행할 수 있습니다.