thaiall logomy background

ลีนุกซ์ (Linux) : superuser

my town
หน้าหลัก | ลีนุกซ์คืออะไร | แนะนำหนังสือ | superuser | บันทึกปัญหา |
 0911
9.11 เพิ่ม Virtual hosts
: เพื่อให้ server 1 ตัว มีหลายเว็บไซต์
    การทำ Virtual hosts มี 2 วิธี
  1. Name-based virtual hosts (ผมเลือกใช้ตัวนี้ เพราะในเครือข่ายมีจำนวน ip จำกัด)
  2. IP-based virtual hosts (แบบนี้ในสำนักงานแห่งหนึ่งใช้ เพราะมี ip ใช้ไม่จำกัด)

1. Name-based virtual hosts

    เทคนิคนี้ ผู้บริหาร host หลายแห่งใช้ เพราะทำให้ได้ชื่อมากมายตามที่ต้องการในเครื่องบริการเพียงเครื่องเดียว ในวิทยาลัยโยนก ใช้วิธีนี้ เพราะมีผู้ดูแลเพียงไม่กี่คน และมี IP จำนวนจำกัด จึงใช้ server เครื่องเดียว และ IP เบอร์เดียว เช่น 202.29.78.12 เป็นต้น เว็บไซต์ที่ใช้หลักการนี้คือ thaiall.com ที่สมัครใช้บริการของ hypermart.net เมื่อทดสอบ ping www.thaiall.com จะพบเลข ip แต่เมื่อเปิดเว็บตาม ip จะไม่พบเว็บของ thaiall.com เพราะ thaiall.com มิใช่เจ้าของ ip เพียงคนเดียว
    การเพิ่ม Virtual hosts แบบนี้ต้องทำคู่กับการแก้ไขระบบ named ในห้อง /var/named เพื่อสร้าง ip หรือ host name สำหรับเว็บไซต์ใหม่ภายใน server ตัวเดียวกัน เพิ่มในแฟ้ม /etc/httpd/conf/httpd.conf มีรายละเอียดเพิ่มเติมเรื่อง virtual hosts ที่ http://httpd.apache.org/docs-2.0/vhosts/ ตัวอย่างข้างล่างนี้คือการเพิ่มชื่อ http://science.yonok.ac.th เข้าไปใน server ที่บริการ http://www.yonok.ac.th
      มีขั้นตอนดังนี้
    1. แก้ไขแฟ้ม /var/named/db.yonok.ac.th กำหนดให้เครื่องเดียวมีหลายชื่อ
      www     IN  A  202.29.78.12
      science IN  A  202.29.78.12
      
    2. แก้ไขแฟ้ม /etc/httpd/conf/httpd.conf กำหนดห้องเก็บเว็บ ให้กับชื่อโฮส
      NameVirtualHost 202.29.78.12
      <VirtualHost 202.29.78.12>
       ServerAdmin webmaster@yonok.ac.th
       DocumentRoot /var/www/html
       ServerName star.yonok.ac.th
      </VirtualHost>
      <VirtualHost 202.29.78.12>
       ServerAdmin phimine@yonok.ac.th
       DocumentRoot /var/www/html/science
       ServerName science.yonok.ac.th
      </VirtualHost>
      <VirtualHost 202.29.78.12>
       ServerAdmin burin@yonok.ac.th
       DocumentRoot /var/www/html/e-learning
       ServerName e-learning.yonok.ac.th
       <Directory /var/www/html/e-learning>
       Options All
       AllowOverride None
       Order deny,allow
       Allow from all
       Deny from 41.217.0.0/16 
       Deny from 82.0.0.0/24
       AddType text/html .shtml .htm .html
       AddHandler server-parsed .shtml .htm .html
      
       </Directory>
      </VirtualHost>
      
    3. #/etc/init.d/named restart
    4. #/etc/init.d/httpd restart
2. IP-based virtual hosts

    การเพิ่ม Virtual hosts มักทำงานคู่กับ ifconfig และแฟ้มในห้อง /var/named เพื่อสร้าง ip หรือชื่อ host สำหรับเว็บไซต์ขึ้นใหม่ การสร้างเว็บไซต์ใหม่ สำหรับ server ตัวเดียวกัน เพิ่มในแฟ้ม /etc/httpd/conf/httpd.conf มีรายละเอียดเพิ่มเติมเรื่อง virtual host ที่ http://httpd.apache.org/docs-2.0/vhosts/ ตัวอย่างบริการนี้จะพบตาม web hosting ต่าง ๆ ที่ระบุว่า เมื่อใช้บริการ เจ้าของ domain name จะได้ ip ส่วนตัว เป็นต้น
    เทคนิคนี้ ทำให้ประหยัดเครื่องบริการ ในบริษัทที่ผมเป็นที่ปรึกษามี local ip จึงใช้ ip แยก directory ต่าง ๆ ออกจากกัน แต่ใช้ server เพียงเครื่องเดียว เช่น 192.168.16.1 หมายถึงเครื่องสมาชิก 192.168.16.2 หมายถึงเครื่องพนักงาน แต่ทั้งบริษัทมีเครื่อง server เพียงเครื่องเดียว ก็สามารถมี ip สำหรับสมาชิกแต่ละคนได้ ผู้ให้บริการ hosting หลายแห่งก็ใช้วิธีนี้ เมื่อกำหนด virtual host แล้ว ผู้ใช้สามารถเปิดเว็บด้วยตัวเลข หรือตัวอักษรก็ได้ เพราะกำหนดห้องปลายทางที่ต้องการ เช่น http://www.isinthai.com หรือ http://202.29.78.1 เป็นต้น
      มีขั้นตอนดังนี้
    1. แก้ไขแฟ้ม /etc/rc.d/rc.local โดยเพิ่ม /sbin/ifconfig eth0:1 202.29.78.1 อีก 1 บรรทัด
    2. แก้ไขแฟ้ม /var/named/db.202.29.78 โดยเพิ่ม 1 IN PTR www.isinthai.com.
    3. แก้ไขแฟ้ม /etc/httpd/conf/httpd.conf กำหนดห้องเก็บเว็บ ให้กับชื่อโฮส
      <VirtualHost 202.29.78.12>
          ServerAdmin webmaster@yonok.ac.th
          DocumentRoot /var/www/html
          ServerName star.yonok.ac.th
      </VirtualHost>
      <VirtualHost 202.29.78.1>
          ServerAdmin burin@yonok.ac.th
          DocumentRoot /var/www/html/isinthai
          ServerName www.isinthai.com
      </VirtualHost>
      	
      <VirtualHost yoso.yonok.ac.th>
       ServerAdmin webmaster@yonok.ac.th
       DocumentRoot c:\appserv\www\yoso
       ServerName yoso.yonok.ac.th
       <Directory c:\appserv\www\yoso>
       Options All
       AddType text/html .shtml .htm .html
       AddHandler server-parsed .shtml .htm .html
       </Directory>
      </VirtualHost>
      
    4. #/etc/init.d/named restart
    5. #/etc/init.d/httpd restart
หมายเหตุ : index.php เป็นแฟ้มที่ใช้แยกห้องตามชื่อที่ส่งเข้ามา เป็นความต้องการพิเศษของโยนก
เมื่อพิมพ์ว่า http://www.yonok.ac.th และ http://www.isinthai.com จะเรียกจุดเดียวกัน แต่ใช้ php แยกห้องให้
<?
if($_SERVER["SERVER_NAME"]=="www.isinthai.com" || $_SERVER["SERVER_NAME"]=="202.29.78.1"){
header("Location: http://".$_SERVER["SERVER_NAME"]."/isinthai/");
} else {
header("Location: http://".$_SERVER["SERVER_NAME"]."/main/");
}
exit;
?>

---
สารบัญ
บทที่ 9 : การบริหารระบบ โดย Super User
9.1 กำหนด IP address และ host name
9.5 Shell script เพิ่มผู้ใช้ _crt
9.6 Shell script ลบผู้ใช้
9.9 แก้ไข aliases ของ user account
9.10 เพิ่ม IP ใน Server ตัวเดียวด้วย IFCONFIG
9.11 เพิ่ม Virtual hosts
9.12 ตัวอย่าง router configuration และการ block port
9.50 ความผิดพลาด
9.52 ปรับระบบให้แข็งแรง
9.53 การทำ restricted shell
9.54 ติดตั้ง TCPWrapper เพื่อตรวจสอบ IP เครื่องต้นทาง
9.55 Network security
9.56 Procmail เพื่อกรอง spam mail และ junk mail
9.58 โปรแกรมภาษา c เพื่อสร้าง crypt ให้ shadow
9.59 ลีนุกซ์บนวินโดวส์ ด้วย cygwin (Unix Simulator)
9.61 ลืมรหัสผ่านของ root
9.62 แก้ไข httpd.conf เพื่อแก้ปัญหาของ web server
9.63 วิธีเปิดบริการ FTP server ด้วย vsftpd
9.64 วิธีเปิดบริการ homepage ให้ ~username ใน linux
9.65 วิธีเปิดบริการ samba
9.66 วิธีเปิดบริการ DNS server
9.67 ติดตั้งโปรแกรมสำหรับ Free hosting ด้วย easyhost_free.zip by CyberScript
9.68 ติดตั้งโปรแกรมสำหรับ Web-based mail ด้วย uebimiau-2.7.2-any.zip
9.69 ติดตั้ง DHCP server แจก Dynamic IP
9.71 ติดตั้ง Web Mail ของ Adjeweb หรือ Squirrelmail
9.72 ติดตั้ง squid เป็น Proxy server ที่ 3128
9.73 เพิ่ม incoming ในบริการ ftp
9.74 User authentication ด้วย .htpasswd + .htaccess
9.75 เปิดบริการ SSI (Server Side Include)
9.76 การติดตั้ง Radius
9.77 ติดตั้ง Modem สำหรับให้บริการเรียกเข้ามา
9.78 SMTP สำหรับ outgoing ของ Outlook ..
9.79 ติดตั้ง SSL (Secure Sockets Layer)
9.95 การย้ายระบบ user จากเครื่องหนึ่งไปอีกเครื่องหนึ่ง
9.96 วิธี copy server หรือ host(Backup)
9.97 Server ตัวนี้ให้บริการอะไรได้บ้าง
9.98 ขั้นตอนการทำ server ตัวนี้
9.99 การบำรุงรักษา และตรวจสอบ
Thaiall.com