Web Sitelerini ve IIS yapılandırmasını Yedekleme ve Geri Yükleme


Bu yazıda, Windows Server'da web sitelerinin, uygulama havuzlarının ve IIS web sunucusu yapılandırmasının nasıl yedekleneceğine bakacağız. Bir ana sunucu arızası durumunda veya bir web sitesini (ve/veya IIS yapılandırmasını) başka bir sunucuya taşırsanız/taşırsanız, bir web sitesini geri yüklemek için bir Internet Information Services yedeği kullanabilirsiniz.

IIS'yi Windows Sunucusunda Yedekleme

Bir İnternet Bilgi Hizmeti web sunucusunda çalışan sitelerin verilerini ve yapılandırmasını yedeklemek birkaç adımdan oluşur:

  1. Yedek IIS web sitesi dosyaları (varsayılan olarak, IIS site dosyaları

    %SystemDrive%\inetpub\wwwroot

    ). Bu klasör yedekleme planına dahil edilmelidir. Yedekleme aracınızı (yerleşik Windows Server Yedekleme'yi bile kullanabilirsiniz -> yedekleme için inetpub dizinini seçebilirsiniz) veya basit BAT/PowerShell betiklerini kullanarak dosyaları tüm dosyaları kopyalamanız yeterlidir. Örneğin, WSB'yi yüklemek ve inetpub\wwwroot dizinini paylaşılan bir klasöre yedeklemek için aşağıdaki komutları kullanın:

    # 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. Geçerli IIS sertifikalarını yedekle (dışa aktar) (bu komutu kullanarak sunucudaki SSL sertifikalarının listesini alabilirsiniz:

    netsh http show sslcert

    ) Sertifikaları paylaşılan bir ağ klasörüne PFX (Kişisel Bilgi Alışverişi) biçiminde yedeklemek için PowerShell'i kullanabilirsiniz:

    dir cert:\localmachine\my | Where-Object { $_.hasPrivateKey } | Foreach-Object { [system.IO.file]::WriteAllBytes("\\srv-backup1\backup\$($_.Subject).pfx",($_.Export('PFX', 'secret')) ) }

  3. Yedek IIS yapılandırması (ayarlar).

Yerleşik appcmd aracını kullanarak IIS yapılandırmasını yedekleyebilirsiniz. Yönetici olarak bir komut istemi açın ve dizini değiştirin:

cd c:\Windows\system32\inetsrv

IIS yapılandırmasını yedekleyelim:

appcmd add backup srv1-iis-backup-2022_03_10
BACKUP object srv1-iis-backup-2022_03_10 added

Appcmd, c:\Windows\system32\inetsrv yedekleme dizininde yedeğinizin adıyla bir klasör oluşturur. Aşağıdaki dosyaları içerir:

  • yönetim.config

  • applicationHost.config

  • MBSchema.xml

  • MetaBase.xml

  • yönlendirme.config

Bu dizini yedek depolama aygıtına kopyalamak için kalır.

Windows Server 2019/2016'da, appcmd yerine IIS'yi yedeklemek için yerleşik PowerShell cmdlet'ini kullanabilirsiniz:

Backup-WebConfiguration -Name MyBackup202203

Bu cmdlet ayrıca mevcut IIS ayarlarını şuraya aktarır:

$env:Windir\System32\inetsrv\backup

Farklı Bir Windows Sunucu Ana Bilgisayarında IIS Yapılandırmasını Geri Yükleme

IIS yapılandırmanızı bir yedekten aynı sunucuya veya farklı bir ana bilgisayara geri yükleyebilirsiniz. Farklı bir Windows Server ana bilgisayarında IIS yapılandırmasını geri yüklemeniz gerektiğini varsayalım.

IIS yedek dizinini hedef sunucudaki aynı klasöre (c:\windows\system32 ackup) kopyalayın.

Kullanılabilir tüm IIS yapılandırma yedeklerinin bir listesini görüntülemek için şu komutu çalıştırın:

appcmd list backup

Kopyalanan yedekleme, kullanılabilir olanlar listesinde görünmelidir. IIS yapılandırmasını bir yedekten geri yükleyin:

appcmd restore backup /stop:true srv1-iis-backup-2022_03_10

"srv1-iis-backup-2022_03_10 yedeğinden geri yüklenen yapılandırma, IIS yapılandırmasının başarıyla geri yüklendiği anlamına gelir.

Bu

/stop:true

seçeneği, IIS'yi geri yüklemeden önce durmaya zorlar.

Restore-WebConfiguration -Name srv1-iis-backup-2022_03_10

Not. gibi girişler var

BACKUP “CFGHISTORY_0000000001”

kullanılabilir yedekler listesinde. Bunlar, otomatik olarak oluşturulan ve \inetpub\history dizininde bulunan IIS yapılandırma yedekleridir. IIS 7+ sürümünde otomatik yedekleme özellikleri ortaya çıktı: IIS Yöneticisi aracılığıyla ApplicationHost.config üzerinde yapılan değişiklikler izlenir, en son 10 yedekleme saklanır ve dosya her 2 dakikada bir değişiklik olup olmadığı kontrol edilir.

Önceki bir yedeği silmek için şu komutu çalıştırın:

appcmd.exe delete backup BackupName

Not. Önemli kısıtlamaların ve kilit noktaların listesi:

  • Her iki sunucuda da aynı IIS sürümünün kullanılması gerekir. PowerShell'i kullanarak kayıt defterinde IIS sürümünüzü kontrol edebilirsiniz:

    get-itemproperty HKLM:\SOFTWARE\Microsoft\InetStp\ | select setupstring,versionstring

    Benim durumumda bu, IIS 10.0'dır.

  • IIS uygulama havuzları yerleşik hesaplardan çalıştırılmazsa, hedef IIS ana bilgisayarında kullanılabilir olmalıdır.

  • IIS'yi geri yüklemeden önce, kullandığınız tüm SSL sertifikalarını yeni sunucuya aktarmalısınız.

IIS web sunucunuzu msdeploy paketini (Web Deployment Tool) kullanarak da yedekleyebilirsiniz. msdeploy paketini indirip IIS ana makinenize ve hedef yedekleme ana bilgisayarına kurun (https://www.microsoft.com/en-us/download/details.aspx?id=43717).

Webdeploy aracılığıyla uzak bir Windows ana bilgisayarı 192.168.100.112'ye bir IIS yedeği oluşturmak için (birden çok site IIS üzerinde çalışıyorsa tüm sitelerle) aşağıdaki komut kullanılabilir:

msdeploy -verb:sync -source:webServer,computername=192.168.100.112 dest:package=c:\Backup\IIS\server1_iis_backup.zip

Ayrı bir IIS web sitesini de yedekleyebilirsiniz:

msdeploy -verb:sync -source:contentPath="site_name.com",computername=192.168.100.112 -dest:package=c:\Backup\IIS\site_name.zip

Veya belirtilen dizinden yalnızca statik web sitesi dosyalarını kopyalayın:

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

İlgili makaleler