วิธีใช้ Host Header บน IIS Windows Server 2022 ให้หลายเว็บไซต์ใช้ IP เดียวกันได้
Host Header เป็นหนึ่งในฟีเจอร์สำคัญที่สุดของ IIS บน Windows Server 2022 เพราะช่วยให้สามารถโฮสต์เว็บไซต์หลายโดเมนบน IP Address เดียวกันได้
หากไม่มี Host Header ผู้ดูแลระบบอาจต้องใช้หลาย IP Address หรือหลาย Server เพื่อรองรับหลายเว็บไซต์ ซึ่งเพิ่มทั้งต้นทุนและความซับซ้อนในการบริหารจัดการ
ปัจจุบันแทบทุกองค์กร ผู้ให้บริการ Hosting และ Data Center ใช้ Host Header เป็นมาตรฐานในการให้บริการเว็บไซต์จำนวนมากบน Server เครื่องเดียว
บทความนี้จะอธิบายการทำงานของ Host Header ตั้งแต่พื้นฐานจนถึงการใช้งานจริงในระดับ Enterprise
🌐 Host Header คืออะไร
Host Header คือค่า
Host:
ที่ Browser ส่งมาพร้อม Request
ตัวอย่าง
เมื่อเปิด
https://comsiam.com
Browser จะส่ง
Host: comsiam.com
เมื่อเปิด
https://shop.comsiam.com
Browser จะส่ง
Host: shop.comsiam.com
IIS ใช้ข้อมูลนี้ในการตัดสินใจว่าจะส่ง Request ไปยังเว็บไซต์ใด
🔍 ทำไมต้องใช้ Host Header
ข้อดี
✅ ใช้ IP เดียวได้หลายเว็บไซต์
✅ ประหยัด Public IP
✅ จัดการง่าย
✅ รองรับหลายร้อยเว็บไซต์
✅ รองรับ Hosting Environment
🌍 ตัวอย่างการทำงาน
Server
192.168.1.10
เว็บไซต์
comsiam.com
shop.comsiam.com
api.comsiam.com
DNS ทั้งหมดชี้มาที่
192.168.1.10
IIS จะแยกเว็บไซต์จาก Host Header
🚀 สร้างเว็บไซต์แรก
Site Name
comsiam.com
Binding
*:80:comsiam.com
🚀 สร้างเว็บไซต์ที่สอง
Site Name
shop.comsiam.com
Binding
*:80:shop.comsiam.com
🚀 สร้างเว็บไซต์ที่สาม
Site Name
api.comsiam.com
Binding
*:80:api.comsiam.com
🔍 ตรวจสอบ Host Header ผ่าน IIS Manager
เปิด
inetmgr
เลือกเว็บไซต์
คลิก
Bindings
จะเห็น
Host Name
ตัวอย่าง
comsiam.com
🚀 เพิ่ม Host Header ผ่าน IIS Manager
เลือกเว็บไซต์
คลิก
Bindings
เลือก
Edit
กำหนด
Host Name
เช่น
comsiam.com
กด
OK
🚀 เพิ่ม Host Header ผ่าน PowerShell
สร้าง Binding
New-WebBinding `
-Name "comsiam.com" `
-Protocol http `
-Port 80 `
-HostHeader "comsiam.com"
อีกเว็บไซต์
New-WebBinding `
-Name "shop.comsiam.com" `
-Protocol http `
-Port 80 `
-HostHeader "shop.comsiam.com"
🚀 ตรวจสอบ Binding ทั้งหมด
Get-WebBinding
ผลลัพธ์
*:80:comsiam.com
*:80:shop.comsiam.com
*:80:api.comsiam.com
🌍 ตั้งค่า DNS
ตัวอย่าง
A Record
comsiam.com
→
192.168.1.10
shop.comsiam.com
→
192.168.1.10
api.comsiam.com
→
192.168.1.10
ทุกโดเมนใช้ IP เดียวกัน
🚀 ทดสอบ Host Header ภายใน LAN
แก้ไขไฟล์
hosts
อยู่ที่
C:\Windows\System32\drivers\etc\hosts
เพิ่ม
192.168.1.10 comsiam.com
192.168.1.10 shop.comsiam.com
จากนั้นเปิด Browser
ทดสอบได้ทันที
🔒 Host Header กับ HTTPS
ในอดีต
HTTPS มีข้อจำกัด
แต่ปัจจุบัน IIS รองรับ
SNI
หรือ
Server Name Indication
สามารถใช้
Host Header
ร่วมกับ
HTTPS
ได้
🚀 เปิด SNI
Bindings
เลือก
https
ติ๊ก
Require Server Name Indication
เลือก SSL Certificate
กด
OK
🚨 เว็บไซต์เปิดผิดเว็บ
สาเหตุหลัก
Host Header ซ้ำ
ตัวอย่างผิด
*:80:
*:80:
ควรกำหนด
*:80:comsiam.com
*:80:shop.comsiam.com
🚨 DNS ถูกต้องแต่เข้าเว็บไม่ได้
ตรวจสอบ
Get-WebBinding
และ
Host Name
ให้ตรงกับ DNS
🚨 HTTPS เปิดผิด Certificate
ตรวจสอบ
SNI
และ
SSL Binding
📊 Host Header vs Multiple IP
| วิธี | แนะนำ |
|---|---|
| Host Header | ✅ |
| หลาย IP | ⚠️ |
| หลาย Server | ❌ |
🔒 Best Practices
สำหรับ Windows Server 2022
ควร
① ใช้ Host Header ทุกเว็บไซต์
② ใช้ SNI สำหรับ HTTPS
③ ใช้ DNS ชี้ IP เดียว
④ แยก Application Pool
⑤ ตั้งชื่อเว็บไซต์ให้ตรงกับ Domain
⑥ ตรวจสอบ Binding เป็นประจำ
ทีมงาน comsiam ใช้ Host Header เป็นมาตรฐานสำหรับทุกเว็บไซต์บน IIS เพราะช่วยลดจำนวน Public IP ที่ต้องใช้ และทำให้การบริหารจัดการเว็บไซต์จำนวนมากเป็นเรื่องง่าย
สำหรับองค์กรที่มีหลายร้อยโดเมน comsiam แนะนำให้ใช้ Host Header ร่วมกับ Wildcard Certificate และระบบ DNS ที่เป็นมาตรฐานเดียวกันทั้งองค์กร เพื่อให้สามารถขยายระบบได้อย่างรวดเร็วในอนาคต
🎯 สรุป
Host Header คือหัวใจสำคัญของการโฮสต์หลายเว็บไซต์บน IIS Windows Server 2022
ด้วยการกำหนด
Host Name
ให้แตกต่างกันใน Binding แต่ละเว็บไซต์ คุณสามารถใช้ Server และ IP Address เดียวรองรับเว็บไซต์จำนวนมากได้อย่างมีประสิทธิภาพ ปลอดภัย และเป็นมาตรฐานเดียวกับผู้ให้บริการ Hosting ระดับโลก