ลีนุกซ์ (Linux)
Home  Contents KMArticlesMembersSponsorsAbout us

ปรับปรุง : 2556-10-06 (ปรับเป็นรุ่น 3)
ขอบซ้ายขอบบน
Linux : 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; ?>

ขอบซ้ายขอบบน
สารบัญ
กรณีศึกษาจาก Redhat 6.2 -> Fedora Core 4 -> Android 4.01
บทที่ 1 : คำสั่งสำหรับผู้ใช้พื้นฐาน (Basic user command)
    1.1 คำสั่ง ls : แสดงรายชื่อแฟ้มในห้องปัจจุบัน หรือห้องอื่น ๆ ที่ต้องการ 1.2 คำสั่ง chmod : เปลี่ยนสถานะของแฟ้มเช่น Read Write eXecute 1.3 คำสั่ง man : แสดงรายละเอียดของคำสั่ง (Manual) 1.4 คำสั่ง mkdir, rmdir, cd : คำสั่งเกี่ยวกับ Directory หรือ Folder เพื่อสร้าง หรือลบ 1.5 คำสั่ง pico : editor ยอดฮิตใน Linux ที่ต้องมากับ Pine เป็น Text mode ที่ใช้ง่ายที่สุด 1.6 คำสั่ง emacs : editor ยอดฮิตใน Linux ใช้ยากกว่า pico นิดหน่อย 1.7 คำสั่ง vi : editor ยอดฮิตใน Linux ที่ใช้ยากที่สุด 1.8 คำสั่ง id, finger, who, w : โปรแกรมตรวจสอบ username ของตนเอง 1.9 คำสั่ง cat : แสดงข้อมูลในแฟ้มเหมือนคำสั่ง type ในระบบ DOS 1.10 คำสั่ง ifconfig : ดู IP หรือเพิ่ม IP เข้าไปใน linux server 1.11 คำสั่ง netstat : แสดงสถานะของเครือข่าย 1.12 คำสั่ง service : แสดงสถานะโปรแกรมที่เปิดให้บริการ 1.13 คำสั่ง xinetd : แสดงบริการที่เปิดใต้โปรแกรม xinetd 1.14 คำสั่ง whereis : ค้นหาแฟ้มที่ต้องการว่าอยู่ที่ห้องใด 1.15 คำสั่ง cp, rm, mv : จัดการแฟ้มเช่น คัดลอก ลบ และย้าย 1.16 คำสั่ง ping : ตรวจสอบ ip และการเชื่อมต่อ internet 1.17 คำสั่ง env : แสดงค่า environment ปัจจุบัน 1.18 คำสั่ง lynx : Text browser ที่ใช้งานง่าย ใช้ดู source หรือ download ได้ 1.19 คำสั่ง nslookup : แสดงข้อมูลเกี่ยวกับ name server จาก ip หรือ domain name 1.20 คำสั่ง tail : แสดงส่วนท้ายของแฟ้มที่มีขนาดใหญ่ ต้องข้ามกับ cat ที่ดูตั้งแต่เริ่มแฟ้ม 1.21 คำสั่ง telnet : ใช้ติดต่อเข้า server ต่าง ๆ ตาม port ที่ต้องการ .
บทที่ 2 : คำสั่งสำหรับผู้ใช้ระดับกลาง (Intermediate user command) เพื่อต้องการตรวจสอบระบบ
    2.1 คำสั่ง df : แสดง partition ของ linux พร้อมขนาดที่ใช้ไป 2.2 คำสั่ง du : แสดงพื้นที่ใช้งานในแต่ละ Directory 2.3 คำสั่ง ps : แสดง process ที่กำลังทำงานอยู่ทั้งของเครื่อง และตนเอง 2.4 คำสั่ง kill : ยกเลิก process ที่ทำงานอยู่ 2.5 คำสั่ง find : ค้นหาแฟ้มที่ต้องการภายในทุก ๆ directory ได้ 2.6 คำสั่ง gzip : คลายการบีบอัด หรือแตกแฟ้มประเภท .gz 2.7 คำสั่ง tar : คลายการบีบอัด หรือแตกแฟ้มประเภท .tar 2.8 คำสั่ง last : แสดงรายชื่อผู้ใช้งานระบบปัจจุบันไปถึงอดีต 2.9 คำสั่ง grep : เลือกข้อความที่ต้องการภายในแต่ละบรรทัด 2.10 คำสั่ง date, hwclock : ใช้กำหนด หรือแสดงเวลาปัจจุบัน 2.11 คำสั่ง top : แสดง process ที่ทำงานในปัจจุบัน พร้อม refresh ตลอดเวลา 2.12 คำสั่ง ntsysv และ setup : กำหนดบริการที่ต้องการเปิด หรือปิด เช่น httpd หรือ vsftp 2.13 คำสั่ง route : ใช้กำหนด แสดง ตารางเส้นทาง 2.14 คำสั่ง shutdown, reboot : ใช้ปิดเครื่อง หรือ ปิดและเปิดเครื่องใหม่อย่างถูกวิธี 2.15 คำสั่ง runlevel : คู่กับแฟ้ม /etc/inittab 2.16 คำสั่ง fsck : ซ่อมแซมระบบแฟ้มใน linux 2.17 คำสั่ง chown, chgrp : เปลี่ยนเจ้าของ หรือเปลี่ยนกลุ่ม 2.18 คำสั่ง chkconfig : กำหนด หรือแสดง บริการที่สั่งประมวลผลใน level ต่าง ๆ ขณะเปิดเครื่อง 2.19 คำสั่ง mount, umount : เชื่อมต่ออุปกรณ์ หรือ partition เช่น Diskette หรือ Handy drive 2.20 คำสั่ง mkbootdisk : สร้างแผ่น boot disk เพื่อใช้ boot ระบบ linux ขึ้นมาภายหลัง 2.21 คำสั่ง traceroute : แสดงเลข ip ของเครื่องที่ถูกเชื่อมต่อ ไปยังปลายทางที่ต้องการ 2.22 คำสั่ง rpm : ใช้ตรวจสอบ เพิ่ม หรือลบ package ของระบบ linux เกือบทั้งหมด 2.23 คำสั่ง su : ขอเปลี่ยนตนเองเป็น Super user เพื่อใช้สิทธิสูงสุดในการบริหารระบบ 2.24 คำสั่ง useradd : เพิ่มผู้ใช้รายใหม่เข้าไปในระบบ 2.25 คำสั่ง userdel : ลบผู้ใช้รายเดิม ออกจากระบบ 2.26 คำสั่ง usermod : แก้ไขข้อมูลของผู้ใช้ได้ 2.27 คำสั่ง crontab : ตั้งเวลาสั่งงานคอมพิวเตอร์ 2.28 คำสั่ง lspci : ตรวจสอบอุปกรณ์ที่เชื่อมต่อภายในเครื่อง 2.29 คำสั่ง nmap : ตรวจสอบเครือข่ายแบบกวาดทั้งในเครื่อง และ class C .
บทที่ 3 : บทเรียน PERL บทที่ 4 : บทเรียน PHP บทที่ 5 : บทเรียน MYSQL บทที่ 6 : แนะนำเครื่องบริการ บทที่ 7 : การใช้ application บทที่ 8 : ระบบ file และ directory บทที่ 9 : การบริหารระบบ โดย Super User
ผู้สนับสนุน + ผู้สนับสนุน
+ รับผู้สนับสนุน
"Imagination is more important than knowledge" - Albert Einstein
Home
Thaiabc.com
Thainame.net
Lampang.net
Nation university
PHP
MySQL
Visual basic.NET
TabletPC
Linux
Online quiz
Download
Search engine
Web ranking
Add website
Blog : Education
Blog : ACLA
Blog : Lampang
Facebook.com
Twitter.com
About us
My dream
Site map
Sponsor