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:
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 -vsscopyGeç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')) ) }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\inetsrvIIS yapılandırmasını yedekleyelim:
appcmd add backup srv1-iis-backup-2022_03_10BACKUP object srv1-iis-backup-2022_03_10 addedAppcmd, 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 MyBackup202203Bu cmdlet ayrıca mevcut IIS ayarlarını şuraya aktarır:
$env:Windir\System32\inetsrv\backupFarklı 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 backupKopyalanan 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:trueseçeneği, IIS'yi geri yüklemeden önce durmaya zorlar.
Restore-WebConfiguration -Name srv1-iis-backup-2022_03_10Not. 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 BackupNameNot. Ö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,versionstringBenim 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.zipAyrı 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.zipVeya 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



