ในบทความนี้ เราจะมาดูวิธีสำรองข้อมูลเว็บไซต์ กลุ่มแอปพลิเคชัน และการกำหนดค่าเว็บเซิร์ฟเวอร์ IIS บน Windows Server คุณสามารถใช้ข้อมูลสำรองของ Internet Information Services เพื่อกู้คืนเว็บไซต์ในกรณีที่เซิร์ฟเวอร์โฮสต์ล้มเหลว หรือหากคุณย้าย/ย้ายเว็บไซต์ (และ/หรือการกำหนดค่า 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_10
BACKUP object srv1-iis-backup-2022_03_10 added
Appcmd สร้างโฟลเดอร์ในไดเร็กทอรี c:\Windows\system32\inetsrv\backup ด้วยชื่อการสำรองข้อมูลของคุณ ประกอบด้วยไฟล์ดังต่อไปนี้:
- administration.config
- applicationHost.config
- MBScema.xml
- MetaBase.xml
- redirection.config
ยังคงต้องคัดลอกไดเรกทอรีนี้ไปยังอุปกรณ์จัดเก็บข้อมูลสำรอง
บน Windows Server 2019/2016 คุณสามารถใช้ PowerShell cmdlet ในตัวเพื่อสำรองข้อมูล IIS แทน appcmd:
Backup-WebConfiguration -Name MyBackup202203
cmdlet นี้ยังส่งออกการตั้งค่า IIS ปัจจุบันไปยัง $env:Windir\System32\inetsrv\backup
.
การกู้คืนการกำหนดค่า IIS บนโฮสต์เซิร์ฟเวอร์ Windows อื่น
คุณสามารถกู้คืนการกำหนดค่า 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