วิธี Restart Website บน IIS Windows Server 2022 โดยไม่กระทบเว็บอื่น
เมื่อเว็บไซต์เกิดปัญหา เช่น หน้าเว็บไม่อัปเดต ระบบค้าง การเชื่อมต่อฐานข้อมูลผิดพลาด หรือมีการ Deploy เวอร์ชันใหม่ ผู้ดูแลระบบจำนวนมากมักใช้คำสั่ง iisreset ทันที
แต่ในความเป็นจริง หาก Server เครื่องเดียวมีหลายเว็บไซต์ การใช้ iisreset จะทำให้ทุกเว็บไซต์บนเครื่องหยุดทำงานพร้อมกัน ซึ่งอาจส่งผลต่อผู้ใช้งานจำนวนมาก
Windows Server 2022 และ IIS มีวิธี Restart เฉพาะเว็บไซต์ที่ต้องการ โดยไม่กระทบเว็บไซต์อื่นในระบบ ซึ่งเป็นแนวทางที่องค์กรและผู้ให้บริการ Hosting นิยมใช้
🌐 Restart Website ต่างจาก IISRESET อย่างไร
เปรียบเทียบง่าย ๆ
| การทำงาน | Restart Website | IISRESET |
|---|---|---|
| กระทบเว็บเดียว | ✅ | ❌ |
| กระทบทุกเว็บไซต์ | ❌ | ✅ |
| Downtime ต่ำ | ✅ | ❌ |
| เหมาะกับ Production | ✅ | ⚠️ |
ดังนั้นหากมีปัญหาเฉพาะเว็บเดียว ควร Restart Website ก่อนเสมอ
🔍 กรณีที่ควร Restart Website
เหมาะสำหรับ
✅ เว็บไซต์ค้าง
✅ หน้าเว็บไม่อัปเดต
✅ Deploy เว็บไซต์ใหม่
✅ เปลี่ยนไฟล์ Configuration
✅ ปรับแต่ง SSL
✅ ปรับแต่ง Binding
✅ ทดสอบระบบ
🚀 วิธี Restart Website ผ่าน IIS Manager
เปิด
inetmgr
หรือ
Internet Information Services (IIS) Manager
ขั้นตอนที่ 1
เลือก
Sites
ขั้นตอนที่ 2
เลือกเว็บไซต์ที่ต้องการ
ตัวอย่าง
comsiam.com
ขั้นตอนที่ 3
ด้านขวาเมนู
Manage Website
เลือก
Stop
ขั้นตอนที่ 4
รอประมาณ
5–10 วินาที
ขั้นตอนที่ 5
คลิก
Start
เว็บไซต์จะกลับมาออนไลน์อีกครั้ง
🚀 Restart Website ผ่าน PowerShell
ดูรายชื่อเว็บไซต์
Get-Website
ผลลัพธ์ตัวอย่าง
Default Web Site
comsiam.com
api.comsiam.com
หยุดเว็บไซต์
Stop-Website -Name "comsiam.com"
เปิดเว็บไซต์
Start-Website -Name "comsiam.com"
Restart แบบคำสั่งเดียว
Stop-Website -Name "comsiam.com"
Start-Website -Name "comsiam.com"
🚀 Restart Website ผ่าน AppCmd
AppCmd เป็นเครื่องมือระดับ Administrator
หยุดเว็บไซต์
appcmd stop site "comsiam.com"
เปิดเว็บไซต์
appcmd start site "comsiam.com"
ดูสถานะเว็บไซต์
appcmd list site
🔍 ตรวจสอบสถานะเว็บไซต์
PowerShell
Get-Website
ตัวอย่าง
Started
Stopped
หากขึ้น
Started
หมายถึงเว็บไซต์ออนไลน์แล้ว
⚡ Restart หลายเว็บไซต์พร้อมกัน
PowerShell
Get-Website | Stop-Website
จากนั้น
Get-Website | Start-Website
ควรใช้เฉพาะช่วง Maintenance
🌍 ทดสอบเว็บไซต์หลัง Restart
เปิด Browser
https://yourdomain.com
หรือ
http://localhost
ตรวจสอบว่า
หน้าเว็บโหลดได้
Login ได้
API ทำงานปกติ
Database เชื่อมต่อได้
🔒 ตรวจสอบ Application Pool
บางครั้ง Restart Website แล้วปัญหายังอยู่
ตรวจสอบ
Application Pools
ใน IIS Manager
หาก Pool หยุดทำงาน
เว็บไซต์จะยังเปิดไม่ได้
PowerShell
Get-WebAppPoolState
เริ่มต้น Pool
Start-WebAppPool
🚨 Website Start ไม่ขึ้น
ตรวจสอบ
Binding
Site → Bindings
Port
ตรวจสอบ
netstat -ano
SSL Certificate
ตรวจสอบ HTTPS Binding
Event Viewer
Windows Logs
Application
⚡ Restart Website โดยไม่ให้ผู้ใช้รู้สึกถึง Downtime
ในองค์กรขนาดใหญ่
นิยมใช้
Load Balancer
Multiple Web Server
Web Farm
แนวทาง
ถอด Server ออกจาก Load Balancer
Restart Website
ทดสอบ
นำกลับเข้า Cluster
ผู้ใช้งานจะไม่รู้สึกถึง Downtime
📊 Restart Website vs Recycle Application Pool
| วิธี | กระทบผู้ใช้ |
|---|---|
| Restart Website | ต่ำ |
| Recycle App Pool | ต่ำมาก |
| IISRESET | สูง |
ในหลายกรณี
Recycle Application Pool เป็นตัวเลือกที่ดีกว่า
💡 Best Practices
สำหรับ Windows Server 2022
ควร
① Restart Website ก่อนใช้ IISRESET
② ตรวจสอบ App Pool ทุกครั้ง
③ ทดสอบเว็บไซต์หลัง Restart
④ สำรอง Configuration ก่อนเปลี่ยนแปลงใหญ่
⑤ ทำ Maintenance นอกเวลาทำการ
ทีมงาน comsiam มักใช้ Restart Website เป็นวิธีแรกในการแก้ปัญหาเว็บไซต์ เนื่องจากลดผลกระทบต่อเว็บไซต์อื่นบนเครื่องเดียวกันได้อย่างมาก
ในระบบที่มีหลายสิบเว็บไซต์ comsiam แนะนำให้แยก Application Pool รายเว็บไซต์เสมอ เพื่อให้สามารถ Restart หรือแก้ไขปัญหาเฉพาะเว็บได้โดยไม่กระทบระบบทั้งหมด
🎯 สรุป
การ Restart Website บน IIS Windows Server 2022 เป็นวิธีที่ปลอดภัยและเหมาะสำหรับระบบ Production มากกว่าการใช้ iisreset
หากเว็บไซต์มีปัญหาเฉพาะจุด ควร Restart เว็บไซต์นั้นโดยตรงผ่าน IIS Manager, PowerShell หรือ AppCmd เพื่อหลีกเลี่ยง Downtime ของเว็บไซต์อื่นและเพิ่มความเสถียรให้กับระบบโดยรวม