VHost บน Pfsense

บทความนี้คืออะไร

บทความนี้ เป็นบทความเพื่อแนะนำให้ผู้อ่านรู้จัก Virtual host และการปรับแต่ง Web Server ของ LinuxSIS 5.0 ให้ทำงานในโหมดนี้ โดยไม่ได้กล่าวถึงการใช้งานบรรทัดคำสั่งเบื้องต้น การใช้งานโปรแกรมแก้ไขข้อความ (text editor) และการปรับแต่งระบบ Domain Name Service (DNS) ของเครือข่าย ซึ่งทั้งสามส่วนนี้ เป็นส่วนที่อาจจะจำเป็นต้องนำมาประกอบกันเพื่อให้การปรับแต่งสมบูรณ์
อย่างไรก็ดี บทความนี้อ้างอิงจาก LinuxSIS 5.0 ดังนั้น ผู้อ่านสามารถนำไปประยุกต์ใช้กับ Linux ค่ายอื่นที่เป็น redhat base เช่น Fedora ได้โดยง่าย แต่อาจจะต้องดัดแปลงไปมาก ถ้าจะนำไปใช้กับ Linuxค่ายอื่นๆ เช่น Debian เป็นต้น

บทความนี้เหมาะกับใคร

เหมาะกับผู้ที่ต้องการนำ LinuxSIS 5.0 ไปทำเป็น Web Server ที่สามารถรองรับหลายๆ Web site อยู่ภายในเครื่อง เดียวกันอย่างง่ายๆ ไม่ว่าจะเป็นสำนักงานทั่วไป โรงเรียน ตลอดจนหน่วยงานขนาดเล็ก ที่ต้องการ Web site จำนวนมากไว้ในเครื่องเดียวกัน (เช่น ธุรกิจ web hosting ขนาดเล็ก)
นอกจากนี้ ยังเหมาะสำหรับหน่วยงานที่มีเครื่อง LinuxSIS 5.0 ไว้ทำหน้าที่หลายอย่าง เช่น เป็น Web Server (อาจจะโดยใช้ drupal) mail server (จะได้เข้าหน้า web mail ได้ง่ายๆ) และ gallery โดยเรียกชื่อบริการโดยตรง เปรียบเสมือนมี Server หลายๆ ตัว แต่ละตัวก็ทำหน้าที่แต่ละอย่าง
อย่างไรก็ดี การปรับแต่งนี้ ต้องการความรู้พื้นฐานเกี่ยวกับบรรทัดคำสั่ง และการใช้งาน Text Editor ซึ่งจะไม่กล่าวในบทความนี้ ดังนั้น ผู้ที่จะอ่านและทำตาม จะต้องมีพื้นฐานด้านเหล่านี้มาก่อน จึงจะทำตามได้ครับ

ความเข้าใจพื้นฐานเกี่ยวกับ Virtual host

ปรกติ เมื่อเราเรียก Website ใดๆ การร้องขอของ Web Browser จะถูกส่งออกไป โดยเบื้องต้น Client จะสอบถามไปตามระบบเครือข่ายว่า URL ดังกล่าวนั้น มี ip อะไร และ DNS Server จะต้องตอบการสอบถามกลับมาว่า เครื่องที่เราจะเปิด Website นั้น มี ip address อะไร เมื่อได้ ip address แล้ว Client ก็จะทำการเชื่อมต่อไปที่ server ตาม ip address ที่ได้ผ่าน tcp 80 เพื่อขอเปิด website ดังกล่าว
จากระบบข้างต้น มีข้อสังเกตดังนี้


  1. ถ้าเราจำ ip address ได้ เราก็เปิด website ได้โดยตรง ไม่ต้องไปเรียผ่าน url
  2. ถ้าระบบ dns มีปัญหา แต่เครือข่ายยังทำงานปรกติ ก็จะเรียก website ผ่าน url ไม่ได้ แต่เรียกผ่าน ip address ได้
  3. แต่ละ url จะต้องจดทะเบียนกับ แต่ละ ip address เพื่อให้ระบบทำงานได้ถูกต้อง

อย่างไรก็ดี ในการร้องขอ website แต่ละครั้ง นอกจากระบบจะส่ง ip address ของ server ที่จะเชื่อมต่อไปแล้ว Client ยังส่ง url ไปด้วย ดังนั้น จึงมีการนำส่วนนี้มาทำประโยชน์ คือ เราสามารถปรับแต่งให้ Web server ตรวจสอบว่า Client ต้องการขอข้อมูลของ url อะไร ก็จะส่ง website นั้นๆ ไปให้ (ทั้งๆ ที่อยู่ในเครื่องเดียวกัน) นี่แหละครับที่เรียกว่า Virtual host
ดังนั้น ถ้าเราปรับแต่งที่ DNS Server ว่า www.myserver.org, mail.myserver.org, product.myserver.org, www.yourserver.com, mail.yourserver.com ฯลฯ ให้ชี้ไปที่ ip address ของเครื่อง Server เครื่องเดียวกัน ไม่ว่า Clinet ใดที่เรียก websites ดังกล่าว ก็จะเปิดไปที่เครื่อง server เดียวกัน ถ้าเราไม่ได้ปรับแต่ง WebServer ไว้แล้ว ทุก Client ก็จะเห็นหน้า Website เดียวกันหมด แต่ถ้าเราปรับแต่ง Virtual host ไว้แล้ว ก็จะสามารถเลือกได้ว่า แต่ละ url ให้ไปเปิด websit ไหนบ้าง (ในเครื่อง server เครื่องเดียวกัน)

มาปรับแต่ง LinuxSIS 5.0 กันเถอะ

1. ออกแบบระบบ – กำหนดข้อมูลที่จะปรับแต่ง สิ่งที่ต้องออกแบบไว้ก่อนคือ
  • url ที่จะเรียก website ต่างๆ ในเครื่อง server
  • directory ที่จัดเก็บ website ต่างๆ ในเครื่อง server
  • อื่นๆ เช่น e-mail ของผู้ดูแลระบบของแต่ละ website, directory – file ที่จะจัดเก็บรายงานการเข้าเยี่ยมชม หรือรายงานการแจ้งปัญหาของระบบเป็นต้น
  • กำหนดว่า Website ใดจะเป็น Website หลัก - Website หลัก คือ Website ที่จะแสดงเมื่อเรียก url ใดๆ ที่ไม่ได้กำหนดไว้

2. เตรียมระบบให้พร้อมที่จะทำ virtual host
  • จดทะเบียน url กับ ip address ของเครื่อง server ตามที่ได้กำหนดไว้ - โดยทั่วไป ก็คือการติดต่อกับ isp ที่เราใช้บริการ หรือถ้าเรามี dns ของเราเอง ก็ไปปรับแต่งที่เครื่อง dns server
  • สร้าง directory ที่จัดเก็บ website ต่างๆ ขึ้นมา และกำหนดสิทธิต่างๆ ให้เหมาะสม คือ ต้องอนุญาติให้ public user สามารถเข้าถึง directory นั้นได้ – ในกรณีที่ต้องการให้เปิดหน้าต่างๆ ของ LinuxSIS ก็เพียงแต่ค้นหาว่าแต่ละหน้าอยู่ที่ directory อะไร เช่น drupal อยู่ที่ /var/www/html/drupal, webmail อยู่ที่ /usr/share/squirrelmail/, gallery อยู่ที่ /var/www/html/gallery2 และ moodle /var/www/html/elearn อยู่ที่ เป็นต้น
  • เตรียม directory ที่จะจัดเก็บรายงานต่างๆ หรือไม่ก็ใช้ค่าปริยายคือ /var/log/httpd/
  • สำรอง config file โดยการ copy /etc/httpd/conf/httpd.conf ไปเก็บไว้ก่อนการปรับแต่ง
3. ปรับแต่ง httpd.conf
  • ใช้ text editor เปิด config file (/etc/httpd/conf/httpd.conf)
  • เลื่อนไปที่ท้ายสุดของ file
  • มองหา #NameVirtualHost *:80 แล้วเอา remark ออก (จะเหลือเพียง NameVirtualHost *:80) เพื่อเป็นการระบุว่า จะใช้งานระบบ virtual host
  • เอา remark ของแต่ละบรรทัดของกลุ่มข้อความที่อยู่ถัดไปออก ตั้งแต่บรรทัด # จนถึงบรรทัด #
  • ทำซ้ำกลุ่มข้อความในข้อ 4 ให้มีจำนวนเท่ากับ website ที่เราต้องการจัดทำ
  • แก้ไขแต่ละกลุ่มข้อความ (หรือ website) ดังนี้
    • ServerAdmin – ให้ใส่ e-mail address ของ admin ของ website นั้นๆ
    • DocumentRoot – ให้ใส่ directory ที่เก็บ website นั้นๆ
    • ServerName – ให้ใส่ URL ของ Website นั้นๆ
    • ErrorLog – ให้ใส่ path ที่เก็บรายงานการทำงานผิดพลาด ของ website นั้นๆ
    • CustomLog – เก็บรายงานอื่นๆ เช่น การเข้าเยี่ยมชม website นั้นๆ
หมายเหตุ ให้วาง config ของ Website หลักไว้เป็นกลุ่มแรก
4. สั่งให้ apache เริ่มทำงานตาม Conifg ใหม่ โดยใช้คำสั่ง /etc/init.d/httpd reload (ไม่ควร restart เพราะอาจจะมีปัญหากับ WebAdmin ได้ครับ) ถ้าสั่ง reload แล้ว ระบบตอบมาว่า Reloading httpd: [ OK ] ก็แสดงว่าใช้งานได้ แต่ถ้าขึ้น error ให้ตรวจสอบอีกครั้ง แต่ถ้าตรวจสอบไม่พบ ให้นำ config file ที่ทำไว้มาแก้ไขใหม่
5. ทดสอบระบบ โดยการเข้า WebSite ต่างๆ ตามที่กำหนด
หวังว่าบทความนี้คงมีประโยชน์บ้างไม่มากก็น้อยนะครับ

0 comments:

Post a Comment

 

Pfsense Thailand Copyright © 2011-2012 | Powered by Blogger