Introduction:
Feature หนึ่งที่น่าสนใจของ Apache web server ที่มาพร้อมกับ
Linux นั่นคือการทำ Virutal Host ซึ่งก็คือการที่ web server ตัวเดียว สามารถมือชื่อได้หลายชื่อ
และแต่ละชื่อก็มี document root แยกกัน เช่น เครื่อง ds90.intanon.nectec.or.th
ให้บริการ ชื่อ www.intanon.nectec.or.th และ webexpo.intanon.nectec.or.th
พร้อม ๆ กับ ได้ เป็นต้น
Prerequirement:
1. Apache web server ซึ่งปกติจะมาพร้อมกับ Linux
อยู่แล้ว
2. Server name ต้องทำการ set server นั้นให้มีชื่ออย่างน้อยสองชื่อ
ซึ่งทำโดยแก้ไข DNS data
การทำ Virtual Host
สมมุติว่าต้องการทำ server ที่มีชื่อว่า www ซึ่งมี
document root อยู่ที่ /var/lib/httpd/htdocs มีชื่อว่า webexpo เพิ่มขึ้นโดย
document root ของ webexpo อยู่ใน /var/lib/httpd/htdocs/webexpo สามารถทำได้โดยเริ่มจากการสร้าง
directory /var/lib/httpd/htdocs/webexpo ขึ้นมาก่อน แล้วจึง ทำการแก้ไข file
/var/lib/httpd/conf/httpd.conf ดังนี้ โดยเติมเข้าไปในส่วนท้าย file
<VirtualHost
webexpo.intanon.nectec.or.th>
ServerAdmin lachanai@ds90.intanon.nectec.or.th
DocumentRoot
/var/lib/httpd/htdocs/webexpo
ServerName webexpo.intanon.nectec.or.th
ErrorLog
logs/webexpo-error.log
TransferLog
logs/webexpo-access.log
</VirtualHost>
โดย <VirtualHost webexpo.intanon.nectec.or.th>
จะหมายถึงว่า กำหนดให้ Virtual host ใหม่มีชื่อเป็น webexpo.intanon.nectec.or.th
(ซึ่งต้องทำการ add เข้าไว้ใน DNS แล้ว) และในการกำหนด document root จะกำหนดใน
/var/lib/httpd/htdocs/webexpo ดังนั้น ถ้ามีการ request http://webexpo.intanon.nectec.or.th/
web server ก็จะไปอ่าน file /var/lib/httpd/htdocs/webexpo/index.html ขึ้นมานั่นเอง
ส่วน รายละเอียดอื่น ๆ นั้น ก็สามารถดูได้ตามตัวอย่างเลย
มีข้อสังเกตุคือ การทำ Virtual Host สามารถนำไปใช้ในระบบ
Intranet ได้เช่นกัน เช่นมี Linux Server ที่มี IP เป็น 202.44.48.33 ( IP
จริิง สำหรับต่อ Internet) . 10.0.1.1 ( IP ปลอม สำหรับ Intranet ) และ 10.0.2.1
( IP ปลอมสำหรับ network นักศึกษา ) ก็ทำการกำหนดใน DNS ให้ ชื่อ www.mptc.eng.cmu.ac.th
เป็นของ 202.44.248.33 ,intranet.mptc.eng.cmua.c.th เป็น virtual host ที่อยู่บน
IP 10.0.1.1 แล้วก็ทำ firewall กั้นไม่ให้ ผู้ทึ่ใช้ IP 10.0.2.0 เข้ามา access
IP 10.0.1.1 ดังนั้น ผู้ที่ใช้ IP 10.0.2.0 เท่านั้น จึงจะเข้ามา access web
page ที่อยู่ใน intranet.intanon.nectec.or.th ได้ เป็นต้น