
В этой статье мы рассмотрим, как создавать резервные копии веб-сайтов, пулов приложений и конфигурации веб-сервера IIS на Windows Server. Вы можете использовать резервную копию Internet Information Services для восстановления веб-сайта в случае сбоя хост-сервера или при переносе/перемещении веб-сайта (и/или конфигурации IIS) на другой сервер.
Резервное копирование IIS на Windows Server
Резервное копирование данных и конфигурации сайтов, работающих на веб-сервере Internet Information Service, состоит из нескольких этапов:
- Резервное копирование файлов веб-сайта IIS (по умолчанию файлы сайтов IIS хранятся в папке
%SystemDrive%\inetpub\wwwroot
). Эта папка должна быть включена в план резервного копирования. Достаточно скопировать все файлы с помощью инструмента резервного копирования (можно даже использовать встроенную программу Windows Server Backup -> выбрать каталог 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.
Вы можете создать резервную копию конфигурации IIS с помощью встроенной программы appcmd инструмент. Откройте командную строку от имени администратора и смените каталог:
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 с именем вашей резервной копии. Она содержит следующие файлы:
- administration.config
- applicationHost.config
- MBSchema.xml
- MetaBase.xml
- redirection.config
Осталось скопировать этот каталог на устройство хранения резервных копий.
В Windows Server 2019/2016 для резервного копирования IIS можно использовать встроенную команду PowerShell, а не appcmd:
Backup-WebConfiguration -Name MyBackup202203
Эта команда также экспортирует текущие настройки IIS в $env:Windir\System32\inetsrv\backup
.
Восстановление конфигурации IIS на другом узле Windows Server
Вы можете восстановить конфигурацию IIS из резервной копии на том же сервере или на другом хосте. Допустим, вам нужно восстановить конфигурацию IIS на другом узле Windows Server.
Скопируйте каталог резервной копии 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”
в списке доступных резервных копий. Это резервные копии конфигурации IIS, созданные автоматически и расположенные в каталоге \inetpub\history. Функции автоматического резервного копирования появились в IIS 7+: отслеживаются изменения ApplicationHost.config, сделанные через IIS Manager, хранятся 10 последних резервных копий, и файл проверяется на наличие изменений каждые 2 минуты.Чтобы удалить предыдущую резервную копию, выполните команду:
appcmd.exe delete backup BackupName
- На обоих серверах должна использоваться одна и та же версия IIS. Проверить версию IIS в реестре можно с помощью PowerShell:
get-itemproperty HKLM:\SOFTWARE\Microsoft\InetStp\ | select setupstring,versionstring
В моем случае это IIS 10.0 - Если пулы приложений IIS не запускаются из встроенных учетных записей, они должны быть доступны на целевом узле IIS.
- Перед восстановлением IIS необходимо импортировать все используемые сертификаты SSL на новый сервер.
Вы также можете создать резервную копию веб-сервера IIS с помощью команды msdeploy пакет (средство развертывания Web Deployment Tool). Загрузите и установите пакет msdeploy на хост IIS и на целевой резервный хост (https://www.microsoft.com/en-us/download/details.aspx?id=43717).
Чтобы создать резервную копию IIS (со всеми сайтами, если на IIS работает несколько сайтов) на удаленном хосте Windows 192.168.100.112 с помощью webdeploy, можно использовать следующую команду:
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