Как сделать резервную копию и восстановить веб-сайты и конфигурацию IIS
В этой статье мы рассмотрим, как выполнять резервное копирование веб-сайтов, пулов приложений и конфигурации веб-сервера IIS на Windows Server. Вы можете использовать резервную копию служб IIS для восстановления веб-сайта в случае сбоя хост-сервера или в случае миграции/перемещения веб-сайта (и/или конфигурации IIS) на другой сервер.
Резервное копирование IIS на Windows Server
Резервное копирование данных и конфигурации сайтов, работающих на веб-сервере Internet Information Service, состоит из нескольких этапов:
Резервное копирование файлов веб-сайта 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 (настройки).
Вы можете сделать резервную копию конфигурации IIS с помощью встроенного инструмента appcmd. Откройте командную строку от имени администратора и измените каталог:
cd c:\Windows\system32\inetsrvДавайте создадим резервную копию конфигурации IIS:
appcmd add backup srv1-iis-backup-2022_03_10BACKUP object srv1-iis-backup-2022_03_10 addedAppcmd создает папку в каталоге c:\Windows\system32\inetsrv\backup с именем вашей резервной копии. Он содержит следующие файлы:
администрирование.конфигурация
applicationHost.config
MBSchema.xml
-
Метабаза.xml
перенаправление.конфигурация
Осталось скопировать этот каталог на устройство хранения резервных копий.
В Windows Server 2019/2016 вы можете использовать встроенный командлет PowerShell для резервного копирования IIS вместо 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 (инструмент веб-развертывания). Загрузите и установите пакет 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



