이 기사에서는 Windows Server에서 웹 사이트, 응용 프로그램 풀 및 IIS 웹 서버 구성을 백업하는 방법을 살펴보겠습니다. 호스트 서버에 장애가 발생하거나 웹사이트(및/또는 IIS 구성)를 다른 서버로 마이그레이션/이동하는 경우 인터넷 정보 서비스 백업을 사용하여 웹사이트를 복원할 수 있습니다.
Windows 서버에서 IIS 백업
인터넷 정보 서비스 웹 서버에서 실행되는 사이트의 데이터 및 구성 백업은 여러 단계로 구성됩니다.
- IIS 웹사이트 파일 백업 (기본적으로 IIS 사이트 파일은
%SystemDrive%\inetpub\wwwroot
에 저장됩니다. ). 이 폴더는 백업 계획에 포함되어야 합니다. 백업 도구(내장된 Windows Server 백업을 사용할 수도 있음 -> 백업을 위해 inetpub 디렉토리 선택) 또는 간단한 BAT/PowerShell 스크립트를 사용하여 모든 파일을 복사하는 것으로 충분합니다. 예를 들어, WSB를 설치하고 inetpub\wwwroot 디렉터리를 공유 폴더에 백업하려면 다음 명령을 사용합니다.# Install the Windows server feature using PowerShell;
Install-WindowsFeature -Name Windows-Server-Backup
# backup IIS website static files
wbadmin start backup –backupTarget:\\srv-backup1\backup -include:c:\inetpub\wwwroot -vsscopy - 현재 IIS 인증서 백업(내보내기) (이 명령을 사용하여 서버의 SSL 인증서 목록을 가져올 수 있습니다.
netsh http show sslcert
) PowerShell을 사용하여 PFX(Personal Information Exchange) 형식의 공유 네트워크 폴더에 인증서를 백업할 수 있습니다.dir cert:\localmachine\my | Where-Object { $_.hasPrivateKey } | Foreach-Object { [system.IO.file]::WriteAllBytes("\\srv-backup1\backup\$($_.Subject).pfx",($_.Export('PFX', 'secret')) ) }
- IIS 구성(설정)을 백업합니다.
내장된 appcmd를 사용하여 IIS 구성을 백업할 수 있습니다. 도구. 관리자로 명령 프롬프트를 열고 디렉터리를 변경합니다.
cd c:\Windows\system32\inetsrv
IIS 구성을 백업해 보겠습니다.
appcmd add backup srv1-iis-backup-2022_03_10
BACKUP object srv1-iis-backup-2022_03_10 added
Appcmd는 백업 이름으로 c:\Windows\system32\inetsrv\backup 디렉터리에 폴더를 만듭니다. 다음 파일이 포함되어 있습니다.
- 관리.구성
- applicationHost.config
- MBSchema.xml
- MetaBase.xml
- redirection.config
이 디렉토리를 백업 저장 장치에 복사하는 작업이 남아 있습니다.
Windows Server 2019/2016에서는 내장 PowerShell cmdlet을 사용하여 appcmd 대신 IIS를 백업할 수 있습니다.
Backup-WebConfiguration -Name MyBackup202203
또한 이 cmdlet은 현재 IIS 설정을 $env:Windir\System32\inetsrv\backup
으로 내보냅니다. .
다른 Windows 서버 호스트에서 IIS 구성 복원
백업에서 동일한 서버나 다른 호스트로 IIS 구성을 복원할 수 있습니다. 다른 Windows Server 호스트에서 IIS 구성을 복원해야 한다고 가정해 보겠습니다.
IIS 백업 디렉터리를 대상 서버의 동일한 폴더(c:\windows\system32\backup)에 복사합니다.
사용 가능한 모든 IIS 구성 백업 목록을 표시하려면 다음 명령을 실행하십시오.
appcmd list backup
복사된 백업이 사용 가능한 목록에 나타나야 합니다. 백업에서 IIS 구성 복원:
appcmd restore backup /stop:true srv1-iis-backup-2022_03_10
"백업 srv1-iis-backup-2022_03_10에서 복원된 구성 IIS 구성이 성공적으로 복원되었음을 의미합니다.
/stop:true
옵션은 복원하기 전에 IIS를 강제로 중지합니다.
Restore-WebConfiguration -Name srv1-iis-backup-2022_03_10
BACKUP “CFGHISTORY_0000000001”
과 같은 항목이 있습니다. 사용 가능한 백업 목록에서 이는 자동으로 생성되고 \inetpub\history 디렉터리에 있는 IIS 구성 백업입니다. 자동 백업 기능은 IIS 7+에 나타났습니다:IIS 관리자를 통해 만들어진 ApplicationHost.config에 대한 변경 사항을 추적하고, 10개의 최신 백업을 저장하고, 2분마다 파일의 변경 사항을 확인합니다. 이전 백업을 삭제하려면 다음 명령을 실행하십시오.
appcmd.exe delete backup BackupName
- 두 서버에서 동일한 IIS 버전을 사용해야 합니다. PowerShell을 사용하여 레지스트리에서 IIS 버전을 확인할 수 있습니다.
get-itemproperty HKLM:\SOFTWARE\Microsoft\InetStp\ | select setupstring,versionstring
제 경우에는 IIS 10.0입니다. - IIS 응용 프로그램 풀이 기본 제공 계정에서 실행되지 않는 경우 대상 IIS 호스트에서 사용할 수 있어야 합니다.
- IIS를 복원하기 전에 사용하는 SSL 인증서를 새 서버로 가져와야 합니다.
msdeploy를 사용하여 IIS 웹 서버를 백업할 수도 있습니다. 패키지(웹 배포 도구). IIS 호스트와 대상 백업 호스트(https://www.microsoft.com/en-us/download/details.aspx?id=43717)에 msdeploy 패키지를 다운로드하여 설치합니다.
webdeploy를 통해 원격 Windows 호스트 192.168.100.112에 IIS 백업(여러 사이트가 IIS에서 실행 중인 경우 모든 사이트 포함)을 생성하려면 다음 명령을 사용할 수 있습니다.
msdeploy -verb:sync -source:webServer,computername=192.168.100.112 dest:package=c:\Backup\IIS\server1_iis_backup.zip
개별 IIS 웹사이트를 백업할 수도 있습니다.
msdeploy –verb:sync -source:contentPath="site_name.com",computername=192.168.100.112 -dest:package=c:\Backup\IIS\site_name.zip
또는 지정된 디렉토리에서 정적 웹사이트 파일만 복사:
msdeploy –verb:sync –source:dirPath="c:\inetpub\wwwroot\site_name",computername=192.168.100.112 -dest:package=c:\Backup\IIS\site_name_static_files.zip