Apache HTTP Server คือ ตอนที่ 2 : การกำหนดค่าเซิร์ฟเวอร์ (Server Configuration)

  1. การกำหนดค่าพื้นฐาน (Basic Configuration)
  2. โฮสต์เสมือน (Virtual Hosts)
  3. การกำหนดค่า (Configuration) SSL
  4. การกำหนดค่าเพื่อประสิทธิภาพ (Performance)

ในโลกของการการทำเว็บและทำแอพ Apache HTTP Server ได้กลายเป็นหนึ่งในเว็บเซิร์ฟเวอร์ที่ใช้กันอย่างแพร่หลายทั่วโลก เป็นโอเพ่นซอร์ส เชื่อถือได้ และมีประสิทธิภาพสูงพร้อมฟีเจอร์มากมายที่ทำให้เป็นตัวเลือกที่เหมาะสำหรับการโฮสต์ทั้งเซิร์ฟเวอร์ในการทำเว็บและทำแอพ ศูนย์กลางของความยืดหยุ่นและฟังก์ชันการทำงานของ Apache คือระบบการกำหนดค่าที่แข็งแกร่ง ในบทความนี้ เราจะเจาะลึกลงไปในการกำหนดค่าของ Apache HTTP Server ตั้งแต่พื้นฐานไปจนถึงองค์ประกอบที่ซับซ้อนมากขึ้น และวิธีใช้ประโยชน์จากการทำเว็บและทำแอพ

1. การกำหนดค่าพื้นฐาน (Basic Configuration)

การกำหนดค่าของ Apache HTTP Server จะหมุนรอบไฟล์กลางสองไฟล์: httpd.conf และ.htaccess ไฟล์ httpd.conf ซึ่งมักจะอยู่ใน etc/httpd/ ไดเร็กทอรี ทำหน้าที่เป็นไฟล์คอนฟิกูเรชันหลักสำหรับเซิร์ฟเวอร์ ในทางกลับกันไฟล์ .htaccess มีการกำหนดค่าระดับไดเร็กทอรี ซึ่งแทนที่การตั้งค่าส่วนกลางที่กำหนดไว้ httpd.conf สำหรับไดเร็กทอรีเฉพาะ

การทำความเข้าใจและตั้งค่าคำสั่งพื้นฐานภายในไฟล์เหล่านี้อย่างถูกต้องเป็นสิ่งสำคัญ DirectoryIndex เป็นคำสั่งหนึ่ง กำหนดไฟล์เริ่มต้นที่ให้บริการเมื่อไคลเอนต์เข้าถึงไดเร็กทอรี โดยทั่วไปจะตั้งค่าเป็น index.html หรือ index.php สามารถเปลี่ยนแปลงได้ตามความต้องการ

คำสั่งที่สำคัญอีกประการหนึ่งคือ ServerAdmin คำสั่งนี้ระบุที่อยู่อีเมลที่เซิร์ฟเวอร์รวมไว้ในข้อความแสดงข้อผิดพลาดที่ส่งไปยังไคลเอนต์ นอกจากนี้ ServerSignature ควบคุมว่าจะเพิ่มโทเค็นเซิร์ฟเวอร์ (ประเภทระบบปฏิบัติการและข้อมูลเกี่ยวกับโมดูลที่คอมไพล์แล้ว) ในเพจที่สร้างโดยเซิร์ฟเวอร์ เช่น เอกสารแสดงข้อผิดพลาดและเพจสถานะเซิร์ฟเวอร์หรือไม่

การทำความคุ้นเคยกับตัวเลือกการกำหนดค่าพื้นฐานเหล่านี้ จะเป็นการปูพื้นฐานสำหรับการทำเว็บและทำแอพที่แข็งแกร่งและเชื่อถือได้

2. โฮสต์เสมือน (Virtual Hosts)

พลังของเซิร์ฟเวอร์ Apache HTTP นั้นชัดเจนด้วยการรองรับโฮสต์เสมือน ทำให้เซิร์ฟเวอร์ Apache หนึ่งเครื่องสามารถโฮสต์หลายเว็บไซต์ได้ โฮสต์เสมือนมีสองประเภท: ตามชื่อและตาม IP

โฮสต์เสมือนตามชื่อใช้ชื่อโฮสต์เพื่อแยกความแตกต่างระหว่างเว็บไซต์ ทำให้สามารถโฮสต์หลายเว็บไซต์ในที่อยู่ IP เดียวได้ ในทางกลับกัน โฮสต์เสมือนที่ใช้ IP จะใช้ที่อยู่ IP ที่แตกต่างกันสำหรับแต่ละเว็บไซต์ แต่ละประเภทมีข้อดีและใช้ตามความต้องการเฉพาะ

การสร้างโฮสต์เสมือนเป็นขั้นตอนสำคัญในการตั้งค่าเซิร์ฟเวอร์เว็บและแอป เนื่องจากให้ความยืดหยุ่นในการโฮสต์หลายไซต์จากเซิร์ฟเวอร์ Apache เดียว

3. การกำหนดค่า (Configuration) SSL

ในยุคที่การรักษาความปลอดภัยเป็นสิ่งสำคัญยิ่ง การกำหนดค่า Secure Sockets Layer (SSL) หรือตัวที่ตามมาคือ Transport Layer Security (TLS) เป็นสิ่งที่ไม่สามารถต่อรองได้ Apache ทำให้การกำหนดค่า SSL/TLS ตรงไปตรงมาผ่าน mod_ssl ซึ่งเป็นโมดูลเสริมที่ให้การเข้ารหัสที่แข็งแกร่งผ่านไลบรารี OpenSSL

เมื่อใบรับรอง SSL พร้อมแล้ว ไม่ว่าจะลงชื่อด้วยตนเองหรือได้รับจากผู้ออกใบรับรอง (CA) ควรวางคำสั่งการกำหนดค่า SSL ไว้ในการกำหนดค่าโฮสต์เสมือนในไฟล์ httpd.conf SSL ที่กำหนดค่าอย่างเหมาะสมทำให้มั่นใจได้ว่าการสื่อสารบนเว็บและเซิร์ฟเวอร์แอปของคุณปลอดภัย เพิ่มความไว้วางใจระหว่างผู้ใช้ปลายทาง

4. การกำหนดค่าเพื่อประสิทธิภาพ (Performance)

เมื่อเซิร์ฟเวอร์การทำเว็บและทำแอพของคุณได้รับความนิยมเพิ่มขึ้น ประสิทธิภาพจะกลายเป็นปัญหาเร่งด่วน โชคดีที่ Apache มีตัวเลือกมากมายสำหรับการเพิ่มประสิทธิภาพเซิร์ฟเวอร์ การแคชเป็นกลไกอย่างหนึ่ง ด้วยการเปิดใช้งาน mod_cache ทำให้ Apache สามารถจัดเก็บและให้บริการเนื้อหาที่แคช ซึ่งช่วยลดภาระบนเซิร์ฟเวอร์

การบีบอัดเป็นอีกหนึ่งเทคนิคในการปรับปรุงประสิทธิภาพ โมดูล mod_deflate ของ Apache จะบีบอัดเอาต์พุตจากเซิร์ฟเวอร์ของคุณก่อนที่จะส่งไปยังไคลเอนต์ ซึ่งช่วยลดจำนวนข้อมูลที่ถ่ายโอน

KeepAlive เป็นการตั้งค่าที่จำเป็นเพิ่มเติม เมื่อเปิดใช้งาน จะอนุญาตให้ส่งคำขอหลายรายการผ่านการเชื่อมต่อ TCP เดียว ซึ่งช่วยลดค่าใช้จ่ายในการสร้างการเชื่อมต่อใหม่สำหรับแต่ละคำขอ อย่างไรก็ตาม สิ่งสำคัญคือต้องปรับการตั้งค่า KeepAlive อย่างรอบคอบเพื่อหลีกเลี่ยงการใช้ทรัพยากรมากเกินไป

การกำหนดค่า Apache เพื่อประสิทธิภาพเป็นสิ่งจำเป็นเมื่อทำเว็บและทำแอพที่สามารถรองรับการรับส่งข้อมูลที่เพิ่มขึ้นในขณะที่ยังคงรักษาประสบการณ์การใช้งานที่ราบรื่น


การกำหนดค่า Apache HTTP Server อาจดูน่ากลัวในตอนแรก อย่างไรก็ตาม การทำความเข้าใจการกำหนดค่าพื้นฐาน การควบคุมพลังของโฮสต์เสมือน การสื่อสารที่ปลอดภัยด้วย SSL และการตั้งค่าประสิทธิภาพเป็นประสบการณ์การเรียนรู้ที่คุ้มค่า

คุณสามารถทำเว็บและทำแอพที่แข็งแกร่งและมีประสิทธิภาพสูงได้เมื่อเชี่ยวชาญด้านการกำหนดค่าเหล่านี้ โปรดจำไว้ว่าชุมชน Apache นั้นมีชีวิตชีวาและพร้อมให้ความช่วยเหลือเสมอ โดยจัดหาทรัพยากรที่สามารถทำให้เส้นทางการกำหนดค่าของคุณง่ายขึ้น เหนือสิ่งอื่นใด ประสบการณ์จริงคือกุญแจสู่การควบคุมการกำหนดค่าเซิร์ฟเวอร์ HTTP ของ Apache อย่างแท้จริง ดังนั้น พับแขนเสื้อของคุณแล้วเตรียมพร้อมที่จะดำดิ่งสู่โลกของการทำเว็บและทำแอพ Apache HTTP Server


Apache HTTP Server คืออะไร

Apache HTTP Server คือ ตอนที่ 1 : การติดตั้ง (Installing) และตั้งค่า (Setting Up)
Apache HTTP Server คือ ตอนที่ 3 : โมดูล (Modules)