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

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

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

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

  1. Резервное копирование файлов веб-сайта 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
  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')) ) } iis ssl привязка сертификатов, экспорт сертификата pfx
  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

резервное копирование конфигурации iis с помощью инструмента appcmd

Appcmd создает папку в каталоге c:\Windows\system32\inetsrv\backup с именем вашей резервной копии. Она содержит следующие файлы:

  • administration.config
  • applicationHost.config
  • MBSchema.xml
  • MetaBase.xml
  • redirection.config

папка резервного копирования iis

Осталось скопировать этот каталог на устройство хранения резервных копий.

В 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

восстановление файлов конфигурации iis из резервной копии с помощью appcmd

В окне «Восстановление конфигурации из резервной копии 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 с помощью powershell
  • Если пулы приложений 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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *