Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> ระบบ >> Windows Server

วิธีสำรองและกู้คืนเว็บไซต์และการกำหนดค่า IIS

ในบทความนี้ เราจะดูวิธีสำรองเว็บไซต์ application pools และการกำหนดค่า IIS web server บน Windows Server คุณสามารถใช้การสำรอง Internet Information Services เพื่อกู้คืนเว็บไซต์ในกรณีที่โฮสต์เซิร์ฟเวอร์ล้มเหลว หรือหากคุณย้าย/โยกย้ายเว็บไซต์ (และ/หรือการกำหนดค่า IIS) ไปยังเซิร์ฟเวอร์อื่น

การสำรอง IIS บน Windows Server

การสำรองข้อมูลและการกำหนดค่าของไซต์ที่ทำงานบนเว็บเซิร์ฟเวอร์ Internet Information Service ประกอบด้วยหลายขั้นตอน:

  1. สำรองไฟล์ IIS website (โดยค่าเริ่มต้น ไฟล์ IIS site จัดเก็บอยู่ใน %SystemDrive%\inetpub\wwwroot ) โฟลเดอร์นี้ต้องรวมอยู่ในแผนการสำรอง เพียงคัดลอกไฟล์ทั้งหมดโดยใช้เครื่องมือสำรองของคุณ (คุณสามารถใช้ Windows Server Backup ในตัว -> เลือกไดเรกทอรี inetpub สำหรับการสำรอง) หรือสคริปต์ BAT/PowerShell ง่ายๆ ตัวอย่างเช่น เพื่อติดตั้ง WSB และสำรองไดเรกทอรี inetpub\wwwroot ไปยัง shared folder ใช้คำสั่งต่อไปนี้:# 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. สำรอง (export) IIS certificates ปัจจุบัน (คุณสามารถดูรายการ SSL certificates บนเซิร์ฟเวอร์ได้โดยใช้คำสั่งนี้: netsh http show sslcert ) คุณสามารถใช้ PowerShell เพื่อสำรอง certificates ไปยัง shared network folder ในรูปแบบ 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
  3. สำรอง IIS configuration (settings).

คุณสามารถสำรองการกำหนดค่า IIS โดยใช้เครื่องมือในตัว appcmd เปิด command prompt ในฐานะ administrator และเปลี่ยนไดเรกทอรี:

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 สร้างโฟลเดอร์ใน c:\Windows\system32\inetsrv\backup ด้วยชื่อการสำรองของคุณ มันประกอบด้วยไฟล์ต่อไปนี้:

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

วิธีสำรองและกู้คืนเว็บไซต์และการกำหนดค่า IIS

เหลือเพียงคัดลอกไดเรกทอรีนี้ไปยังอุปกรณ์จัดเก็บสำรอง

บน Windows Server 2019/2016 คุณสามารถใช้คอมมานด์เลต PowerShell ในตัวเพื่อสำรอง IIS แทน 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 config จากการสำรอง:

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

วิธีสำรองและกู้คืนเว็บไซต์และการกำหนดค่า IIS

“Restored configuration from backup 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 version เดียวกันต้องใช้บนเซิร์ฟเวอร์ทั้งสอง คุณสามารถตรวจสอบ IIS version ของคุณใน registry โดยใช้ PowerShell: get-itemproperty HKLM:\SOFTWARE\Microsoft\InetStp\ | select setupstring,versionstring ในกรณีของผมคือ IIS 10.0 วิธีสำรองและกู้คืนเว็บไซต์และการกำหนดค่า IIS
  • หาก IIS application pools ไม่ได้รันจาก built-in accounts พวกเขาต้องมีอยู่บนโฮสต์ IIS เป้าหมาย
  • ก่อนกู้คืน IIS คุณต้องนำเข้า SSL certificates ที่คุณใช้ไปยังเซิร์ฟเวอร์ใหม่

คุณยังสามารถสำรอง IIS web server ของคุณโดยใช้แพ็กเกจ 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 website เดียวได้:

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