Computer >> คอมพิวเตอร์ >  >> ระบบ >> Windows Server

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

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

การสำรองข้อมูล IIS บน Windows Server

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

  1. สำรองไฟล์เว็บไซต์ 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
  2. สำรอง (ส่งออก) ใบรับรอง 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 ได้อย่างไร
  3. สำรองข้อมูลการกำหนดค่า 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

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

Appcmd สร้างโฟลเดอร์ในไดเร็กทอรี c:\Windows\system32\inetsrv\backup ด้วยชื่อการสำรองข้อมูลของคุณ ประกอบด้วยไฟล์ดังต่อไปนี้:

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

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

ยังคงต้องคัดลอกไดเรกทอรีนี้ไปยังอุปกรณ์จัดเก็บข้อมูลสำรอง

บน 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

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

“การกำหนดค่าที่กู้คืนจากข้อมูลสำรอง 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 เป้าหมาย
  • ก่อนที่จะกู้คืน 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