วิธีสำรองและกู้คืนเว็บไซต์และการกำหนดค่า IIS
ในบทความนี้ เราจะดูวิธีการสำรองข้อมูลเว็บไซต์ กลุ่มแอปพลิเคชัน และการกำหนดค่าเว็บเซิร์ฟเวอร์ IIS บน Windows Server คุณสามารถใช้การสำรองข้อมูลบริการข้อมูลทางอินเทอร์เน็ตเพื่อกู้คืนเว็บไซต์ในกรณีที่โฮสต์เซิร์ฟเวอร์ล้มเหลว หรือหากคุณโยกย้าย/ย้ายเว็บไซต์ (และ/หรือการกำหนดค่า IIS) ไปยังเซิร์ฟเวอร์อื่น
สำรองข้อมูล IIS บน Windows Server
การสำรองข้อมูลและการกำหนดค่าของไซต์ที่ทำงานบนเว็บเซิร์ฟเวอร์บริการข้อมูลทางอินเทอร์เน็ตประกอบด้วยหลายขั้นตอน:
สำรองไฟล์เว็บไซต์ 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สำรอง (ส่งออก) ใบรับรอง IIS ปัจจุบัน (คุณสามารถรับรายการใบรับรอง SSL บนเซิร์ฟเวอร์ได้โดยใช้คำสั่งนี้:
netsh http show sslcert) คุณสามารถใช้ PowerShell เพื่อสำรองใบรับรองไปยังโฟลเดอร์เครือข่ายที่ใช้ร่วมกันในรูปแบบ PFX (การแลกเปลี่ยนข้อมูลส่วนบุคคล):
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 ackup ด้วยชื่อข้อมูลสำรองของคุณ ประกอบด้วยไฟล์ต่อไปนี้:
administrator.config
applicationHost.config
MBSchema.xml
-
MetaBase.xml
redirection.config
ยังคงต้องคัดลอกไดเร็กทอรีนี้ไปยังอุปกรณ์จัดเก็บข้อมูลสำรอง
บน Windows Server 2019/2016 คุณสามารถใช้ PowerShell cmdlet ในตัวเพื่อสำรองข้อมูล IIS แทน appcmd:
Backup-WebConfiguration -Name MyBackup202203cmdlet นี้ยังส่งออกการตั้งค่า IIS ปัจจุบันไปยัง
$env:Windir\System32\inetsrv\backupการคืนค่าการกำหนดค่า IIS บนโฮสต์ Windows Server อื่น
คุณสามารถกู้คืนการกำหนดค่า IIS ของคุณจากข้อมูลสำรองไปยังเซิร์ฟเวอร์เดียวกันหรือไปยังโฮสต์อื่นได้ สมมติว่าคุณต้องกู้คืนการกำหนดค่า IIS บนโฮสต์ Windows Server อื่น
คัดลอกไดเรกทอรีสำรอง IIS ไปยังโฟลเดอร์เดียวกัน (c:\windows\system32 ackup) บนเซิร์ฟเวอร์เป้าหมาย
หากต้องการแสดงรายการข้อมูลสำรองการกำหนดค่า 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



