การทำ Virtual Web Server ด้วย Apache (ตอนที่ 1)
จากตอนที่แล้วผู้อ่านได้รู้จักโปรแกรมเว็บเซิร์ฟเวอร์ประเภทต่างๆ รวมทั้งวิธีการติดตั้งและปรับแต่งโปรแกรม Apache HTTPd Server กันไปแล้ว ฉบับนี้เป็นการแนะนำการต่อยอดจากฉบับที่แล้ว เป็นการทำให้เครื่องเซิร์ฟเวอร์เครื่องเดียวบริการได้หลายโดเมน (หลายเว็บไซต์) เราเรียกการทำนี้ว่า “Virtual Web Server” ซึ่งในปัจจุบันเป็นที่นิยมอย่างมากของผู้ให้บริการเว็บโฮสต์ติ้ง เนื่องจากไม่ต้องซื้อเครื่องเซิร์ฟเวอร์หลายๆ เครื่องเพื่อบริการลูกค้า เพียงแต่ดึงความสามารถภายในตัวโปรแกรม Apache เอง ผู้ดูแลระบบต้องทำการตั้งค่าเพิ่มเติมเพียงเล็กน้อย ก็จะทำให้เครื่องเซิร์ฟเซิร์ฟเวอร์ที่ใช้งานอยู่สามารถบริการได้หลายโดเมน (บริการลูกค้าได้หลายราย)
รูปแบบการทำ Virtual Web Server
ในการทำ Virtual Web Server สามารถทำได้หลายรูปแบบด้วยกัน พอสรุปคร่าวๆ ได้ดังนี้
1. การอ้างอิงเว็บไซต์โดยใช้โดเมนเนมหรือโฮสต์เนม (Name-based Virtual Host)
2. การอ้างอิงเว็บไซต์โดยใช้หมายเลขพอร์ต (Port-based Virtual Host)
3. การอ้างอิงเว็บไซต์โดยใช้ไอพีแอดเดรส (IP-based Virtual Host)
4. การอ้างอิงโดยใช้ Port-based ร่วมกับ IP-based
5. การอ้างอิงโดยใช้ Name-based ร่วมกับ IP-based
การอ้างอิงเว็บไซต์โดยใช้โดเมนเนมหรือโฮสต์เนม(Name-based Virtual Hosts)

การอ้างอิงเว็บไซต์โดยใช้โดเมนเนมหรือโฮสต์เนม (Name-based Virtual Hosts)
การอ้างอิงเว็บไซต์โดยใช้ชื่อโดเมนสามารถทำได้หลายวิธี โดยส่วนใหญ่จะนิยมอยู่ 3 วิธี คือ
1.กรณีใช้ Private IP Address(IP ปลอม) มีการตั้ง DNS ใช้งานเองที่หน่วยงาน ให้ผู้ดูแลระบบทำการ Map IP Address ชี้มายังโดเมนที่ต้องการ
2.กรณีใช้ Private IP Address(IP ปลอม)ไม่มีการติดตั้ง DNS ให้ผู้ดูแลระบบทำการแก้ไขไฟล์ /etc/hosts โดยทำการเพิ่มเติมโดเมนเนมที่ต้องการลงไป

ไฟล์ hosts
การอ้างอิงโดยใช้ IP Address และมีการจดโดเมนเนมจริง โดยส่วนใหญ่จะอยู่ในองค์กรที่ใช้ระบบ ADSL แบบ Corporate หรือใช้ระบบสัญญาณเช่า (Leased Line) หลังการสมัครผู้ให้บริการอินเทอร์เน็ต (ISP) จะจัดสรรหมายเลข IP Address จริงมาให้ส่วนหนึ่ง ผู้ดูแลระบบก็สามารถนำไอพีดังกล่าวมากำหนดที่เครื่องเซิร์ฟเวอร์ได้ กรณีมีปัญหาการใช้งานส่วนของ IP Address และ Domain Name ผู้ดูแลระบบสามารถโทรสอบถามทางฝั่งผู้ให้บริการได้ทันที
ตัวอย่างที่ 1 การทำ Name-based Virtual Hosts กรณีใช้ IP Address เบอร์เดียวกันบริการหลายโดเมน ในที่นี้ผู้เขียนทดสอบโดยกำหนดไอพีแอดเดรสหมายเลข 192.168.3.5 บริการสองโดเมนคือ www.thainetpro.com และ www.thainetpro.net
1.ทำการเปิดไฟล์ httpd.conf เพื่อเพิ่มเติมคอนฟิก
--------------------
# ifconfig [enter] ตรวจสอบหมายเลขไอพีแอดเดรส
# vi /etc/httpd/conf/httpd.conf [enter]
-----------------
2. ทำการแก้ไฟล์ httpd.conf ตามรูปแบบดังนี้
-------------------
# Ensure that Apache listens on port 80
#Listen 12.34.56.78:80
#Listen 192.168.3.5:80
Listen 80
# Listen for virtual host requests on all IP addresses เพิ่มเติมเองในส่วนท้ายสุดของไฟล์
NameVirtualHost *:80
<VirtualHost *:80>
DocumentRoot /www/thainetpro.com
ServerName www.thainetpro.com
# Other directives here
</VirtualHost>
<VirtualHost *:80>
DocumentRoot /www/thainetpro.net
ServerName www.thainetpro.net
# Other directives here
</VirtualHost>
--------------------------
Note.
สามารถใช้หมายเลขไอพีแอดเดรสแทนเครื่องหมาย * ได้เช่นกัน ตามรูปแบบดังนี้
------------------
NameVirtualHost 192.168.3.5:80
<VirtualHost 192.168.3.5:80>
# etc ...
ในการกำหนดหากเป็นพอร์ด 80 ซึ่งเป็นหมายเลข Default ของ http ไม่จำเป็นต้องระบุหมายเลขพอร์ตก็ได้ เช่น
NameVirtualHost 192.168.3.5
<VirtualHost 192.168.3.5>
# etc ...
------------------
ตัวอย่างที่ 2 การทำ Name-based Virtual Hosts กรณีใช้ IP Address 2 หมายเลขบริการแยกโดเมนกัน โดยที่ไอพีแอดเดรสหมายเลข 192.168.3.4 บริการโดเมนหลักคือ cmsthailand.com ข้อมูลเก็บอยู่ในไดเร็กทอรี /www/mainserver และหมายเลขไอพีแอดเดรส 192.168.3.5 บริการสองโดเมนคือ www.thainetpro.com และ www.thainetpro.net ลักษณะ Virtual hosts
-------------------
Listen 80
# This is the "main" server running on 192.168.3.4
ServerName server.cmsthailand.com
DocumentRoot /www/mainserver
# This is the other address
NameVirtualHost 192.168.3.5
<VirtualHost 192.168.3.5>
DocumentRoot /www/thainetpro.com
ServerName www.thainetpro.com
# Other directives here ...
</VirtualHost>
-------------------
ตัวอย่างที่ 3 การทำ Name-based Virtual Hosts กรณีใช้ IP Address 2 หมายเลขคือ 192.168.3.5 และ 203.150.225.157 โดยที่หมายเลขไอพีแอดเดรส 192.168.3.5 สำหรับบริการเรือข่ายภายในองค์กร (Intranet) และหมายเลขไอพีแอดเดรส 203.150.225.157 เป็นหมายเลขบริการนอกเครือข่ายบริการนอกองค์กร (Internet)
-------------------
NameVirtualHost 192.168.3.5
NameVirtualHost 203.150.225.157
<VirtualHost 192.168.3.5 203.150.225.157>
DocumentRoot /www/mainserver
ServerName server.cmsthailand.com
ServerAlias server
</VirtualHost>
-------------------
ลิงค์เกี่ยวข้อง
- การทำ Virtual Web Server ด้วย Apache (ตอนที่ 2)
- Login or register to post comments
Post to Twitter











