Поиск по сайту:

Как сделать резервную копию и восстановить веб-сайты и конфигурацию IIS


В этой статье мы рассмотрим, как выполнять резервное копирование веб-сайтов, пулов приложений и конфигурации веб-сервера IIS на Windows Server. Вы можете использовать резервную копию служб IIS для восстановления веб-сайта в случае сбоя хост-сервера или в случае миграции/перемещения веб-сайта (и/или конфигурации IIS) на другой сервер.

Резервное копирование IIS на Windows Server

Резервное копирование данных и конфигурации сайтов, работающих на веб-сервере Internet Information Service, состоит из нескольких этапов:

  1. Резервное копирование файлов веб-сайта 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
  2. Резервное копирование (экспорт) текущих сертификатов 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')) ) }

  3. Резервное копирование конфигурации 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 с именем вашей резервной копии. Он содержит следующие файлы:

  • администрирование.конфигурация

  • 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

Статьи по данной тематике