Friday, September 30, 2011

การทำ Virtual Host บน Apache Web Server

การทำ Virtual Host บน Apache Web Server
ในกรณีที่คุณมี Web Server อยู่หนึ่งตัวแต่ต้องการให้มี host name  (ชื่อของ Web server) อยู่บน Web Server ตัวนี้หลายชื่อ  ก็สามารถทำได้ด้วยการทำ virtual host บนไฟล์คอนฟิกของ apache ซึ่งไฟล์นี้อาจจะอยู่ที่ /etd/httpd/conf/httpd.conf โดยการทำ virtual host มีสองลักษณะคือ:
   1. ทำ IP เดียวให้มีหลาย host
   2. มีหลาย
IP บนเครื่องเดียวและก็มีจำนวน hoat เท่ากับจำนวน IP  ซึ่งอาจจะมีการ์ดแลนหลายการ์ดอยู่บนเครื่อง ๆ เดียว หรือทำการ์ดแลนการ์ดเดียวให้มีหลาย IP ก็ได้  แล้วแต่จะประยุกต์ใช้งานนะครับ

ทำ
IP เดียวให้มีหลาย host  (Using name-based virtual hosts)
ให้ทำการคอนฟิกไฟล์ /etd/httpd/conf/httpd.conf  โดยค้นหาตำแหน่งข้อความที่มีคำว่า <VirtualHost> ซึงอาจจะมีตัวอย่างของการทำ virtual host อยู่แล้ว ซึ่งในตัวอย่างนี้สมมุติว่าคุณมี IP อยู่ค่าเดียวคือ 202.129.16.27 และต้องการจะทำเป็น 2 โฮสต์คือ www.compspot.net กับ mail.compspot.net ก็ทำได้ดังนี้ครับ
NameVirtualHost 202.129.16.27
<VirtualHost 202.129.16.27>
    ServerAdmim webmaster@compspot.net   
    DocumentRoot /var/www/html
    ServerName www.compspot.net
    ErrorLog /etc/httpd/logs/www.compspot.net.error_log.log
   
CustomLog /etc/httpd/logs/www.compspot.net.custom_log.log
</VirtualHost>

<VirtualHost 202.129.16.27>
    ServerAdmin webmaster@
compspot.net   
    DocumentRoot /var/www/mail
    ServerName mail.
compspot.net
    ErrorLog /etc/httpd/logs/mail.compspot.net.error_log.log
   
CustomLog /etc/httpd/logs/mail.
compspot.net.custom_log.log
</VirtualHost>
หลาย IP หลาย Host อยู่บนเครื่องเดียวกันสมมุติว่าในเครื่อง web server มี 2 ip คือ 202.129.16.29 กับ 202.129.16.30 ต้องการทำเป็น 2 Host  คือ www.itwizard.info  กับ mail.itwizard.info ก็สามารถทำได้ดังนี้ :
<VirtualHost 202.129.16.29>
   ServerAdmin webmaster@
compspot.net  
   DocumentRoot /var/www/html
   ServerName www.
compspot.net
   ErrorLog /etc/httpd/logs/www.compspot.net.error_log.log
   CustomLog /etc/httpd/logs/www.
compspot.net.custom_log.log
</VirtualHost>

<VirtualHost 202.129.16.30>
   ServerAdmin webmaster@
compspot.net
   DocumentRoot /var/www/mail
   ServerName mail.
compspot.net
   ErrorLog /etc/httpd/logs/mail.compspot.net.error_log.log
   CustomLog /etc/httpd/logs/mail.
compspot.net.custom_log.log
</VirtualHost>

ในส่วนของ log file นั้นท่านจะไว้ที่ไหนก็ได้ครับ ไม่ต้องทำตามตัวอย่างทั้งหมด

0 comments:

Post a Comment

 
Design by GURU