โดยปกติแล้ว Web Server เครื่องๆ หนึ่งจะใช้สำหรับเว็บไซต์หลายเว็บ ซึ่งสามารถทำได้โดยการทำ Virtual Host โดยบน Apache สามารถทำได้ 2 แบบ คือ
1. IP Based Virtual Host คือการทำ Virtual Host โดยใช้ IP Address เป็นตัวแบ่ง ซึ่งวิธีนี้เราจะต้องมี IP สำหรับทุกๆ เว็บไซต์ที่จะทำ
2. Name Based Virtual Host วิธีนี้จะใช้ชื่อ domain name เป็นตัวแบ่ง โดยทุกๆ เว็บไซต์จะใช้ IP เดียวกันหมด ซึ่ง Hosting ส่วนใหญ่นิยมใช้แบบนี้ และวันนี้เราก็จะมาลองทำแบบนี้กัน ^^
ตัวอย่างที่เราจะทดสอบกันต่อไปนี้ Client เราจะใช้ Windows ส่วน Apache Web Server เราจะใช้ Linux CentOS ที่เราได้ทำการติดตั้งกันไปแล้วจากบทความก่อนๆ ส่วน DNS Server เราจะพูดถึงอีกทีในบทความต่อๆ ไป
เข้าเรื่องกันเลย อย่างแรกที่เราต้องทำก่อนก็คือกำหนดให้ domain name ของเรา point ไปยัง IP ของ Web Server ซึ่งในทีนี้ก็คือ 192.168.10.10 และเนื่องจากว่าเราเองยังไม่มี DNS Server ฉะนั้นในการทดสอบ ให้เราเข้าไปแก้ไข /etc/hosts ของเครื่องไคลเอนต์กันก่อน เพื่อกำหนดค่า ip ให้กับ domain แบบตรงๆ กันก่อน โดยถ้าใช้ windows ให้เข้าไปแก้ไขที่ไฟล์ c:\Windows\System32\drivers\etc\hosts และสำหรับ Linux ให้แก้ไขที่ไฟล์ /etc/hosts โดยให้เพิ่มบรรทัดต่อไปนี้
1 2 | 192.168.10.10 vhost1.unzeen.com 192.168.10.10 vhost2.unzeen.com |
เมื่อเพิ่มข้อมูลลงไปแล้ว ให้ทดสอบทำการ ping vhost1.unzeen.com ว่าได้ IP กลับมาถูกต้องหรือไม่ ถ้าได้แล้วก็ไปขั้นตอนถัดไปได้เลย
ขั้นตอนถัดไปให้เข้าไปที่ Linux Server และทำการสร้างโฟลเดอร์ /var/www/vhost1/ และ /var/www/vhost2/ เพื่อเอาไว้เก็บไฟล์ของเว็บไซต์
1 2 | # mkdir /var/www/vhost1/ # mkdir /var/www/vhost2/ |
จากนั้นทำการสร้างไฟล์ index.html ไว้ที่ /var/www/vhost1/ และ /var/www/vhost2/
# index.html ใน vhost1
1 2 3 4 5 6 7 8 | <HTML> <HEAD> <TITLE>VHOST1</TITLE> </HEAD> <BODY> VHOST1 </BODY> </HTML> |
# index.html ใน vhost2
1 2 3 4 5 6 7 8 | <HTML> <HEAD> <TITLE>VHOST2</TITLE> </HEAD> <BODY> VHOST2 </BODY> </HTML> |
เนื่องจากเราทำการล๊อกอินเข้าระบบด้วย root ฉะนั้นเพื่อความแน่ใจทำการเปลียน Permission ของ vhost1 และ vhost2 เล็กน้อย
1 2 | # chmod -R 755 /var/www/vhost1/ # chmod -R 755 /var/www/vhost2/ |
ต่อไปทำการแก้ไขไฟล์ /etc/httpd/conf/httpd.conf โดยให้เอา # หน้า NameVirtualHost ออก และเพิ่มบรรทัดในส่วนของ VirtualHost ลงไปตามตัวอย่าง
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | NameVirtualHost *:80 <VirtualHost *:80> ServerAdmin [email protected] DocumentRoot /var/www/vhost1 ServerName vhost1.unzeen.com ErrorLog logs/vhost1.unzeen.com-error_log CustomLog logs/vhost1.unzeen.com-access_log common </VirtualHost> <VirtualHost *:80> ServerAdmin [email protected] DocumentRoot /var/www/vhost2 ServerName vhost2.unzeen.com ErrorLog logs/vhost2.unzeen.com-error_log CustomLog logs/vhost2.unzeen.com-access_log common </VirtualHost> |
จากนั้นสั่ง restart service ของ apache ด้วยคำสั่ง
1 | # service httpd restart |
เท่านี้ก็เป็นอันว่าเราทำการสร้าง VirtualHost เป็นที่เรียบร้อย ทดสอบเปิดจาก Web Browser ดูได้
วันนี้เท่านี้ก่อน รอบหน้าเราจะมาต่อกันที่เรื่อง SSL กันจริงๆ หละ