Linux
น้องๆ เคยสงสัยไหมว่าเวลาเราเข้าเว็บต่างๆ ทำไมมันถึงโหลดได้เร็วบ้าง ช้าบ้าง? ส่วนนึงเนี่ย มันอยู่ที่ Web Server ที่เว็บนั้นๆ ใช้กันอยู่ สมัยผมทำร้านเน็ต SiamCafe.net เมื่อก่อน Apache นี่คือพระเอกเลย แต่เดี๋ยวนี้ Nginx ก็มาแรงแซงทางโค้งแล้ว
Nginx กับ Apache เนี่ย เปรียบเหมือนคนขับรถส่งของ Apache นี่คือรถบรรทุกใหญ่ ขนได้เยอะ แต่กินน้ำมัน ส่วน Nginx นี่คือมอเตอร์ไซค์ ส่งเร็วกว่า คล่องตัวกว่า แต่ขนได้น้อยกว่า เรื่องสำคัญก็คือ performance, scalability แล้วก็ resource consumption นี่แหละ
ปี 2026 เนี่ย โลกมันเปลี่ยนไปเยอะ Web Server ก็ต้องปรับตัวตาม Nginx กับ Apache ก็ต้องพัฒนาตัวเองให้ตอบโจทย์ยุคสมัยให้ได้ ไม่งั้นก็โดนตัวอื่นแซงไป
Web Server ก็คือโปรแกรมที่คอยรับคำขอจาก Browser ของเรา แล้วก็ส่งไฟล์ HTML, CSS, JavaScript กลับไปให้ Browser แสดงผล เคยไหมตอนเด็กๆ อยากเปิดเว็บเอง ก็ต้องลงโปรแกรมพวก AppServ อะไรพวกนั้นแหละ Apache ก็เป็น Web Server ตัวนึง Nginx ก็ด้วย
HTTP เนี่ย มันคือภาษาที่ Browser กับ Web Server ใช้คุยกัน เวลาเราพิมพ์ URL ใน Browser แล้วกด Enter Browser จะส่งคำขอ HTTP ไปที่ Web Server Web Server ก็จะตอบกลับมาด้วย HTTP response ที่มีข้อมูลที่เราต้องการ
Load Balancing ก็คือการกระจาย traffic ไปยัง Server หลายๆ ตัว เพื่อไม่ให้ Server ตัวใดตัวนึงทำงานหนักเกินไป สมัยก่อน Server มันแพง ใครมี Server หลายตัวนี่รวยเลย เดี๋ยวนี้ Cloud มันทำให้ชีวิตง่ายขึ้นเยอะ
เอาล่ะ มาดูวิธีใช้งานกันบ้างดีกว่า ผมจะยกตัวอย่างการติดตั้งบน Linux นะ เพราะมันเป็นอะไรที่คนส่วนใหญ่น่าจะคุ้นเคยกันดี
เปิด Terminal แล้วพิมพ์คำสั่งนี้เลย
sudo apt update
sudo apt install nginx
แค่นี้เอง! Nginx ก็พร้อมใช้งานแล้ว ลองเปิด Browser แล้วพิมพ์ localhost ดูสิ น่าจะเห็นหน้า Welcome to Nginx
ไฟล์ config หลักของ Nginx จะอยู่ที่ /etc/nginx/nginx.conf แต่เรามักจะไม่แก้ไฟล์นี้โดยตรง แต่จะสร้างไฟล์ config ใหม่ใน /etc/nginx/sites-available/ แล้วก็สร้าง symlink ไปที่ /etc/nginx/sites-enabled/
ตัวอย่างไฟล์ config สำหรับ Web Server ง่ายๆ:
server {
listen 80;
server_name example.com;
root /var/www/example.com;
index index.html;
location / {
try_files $uri $uri/ =404;
}
}
อย่าลืม restart Nginx หลังจากแก้ไข config นะ:
sudo systemctl restart nginx
เหมือน Nginx เลย ง่ายๆ:
sudo apt update
sudo apt install apache2
Apache ก็จะมีหน้า Welcome เหมือนกัน ลองเปิด localhost ดู
ไฟล์ config หลักของ Apache จะอยู่ที่ /etc/apache2/apache2.conf แต่เราก็มักจะสร้าง Virtual Host ใน /etc/apache2/sites-available/ แล้วก็ enable มันด้วย a2ensite
ตัวอย่าง Virtual Host config:
ServerName example.com
DocumentRoot /var/www/example.com
AllowOverride All
Require all granted
Enable Virtual Host แล้ว restart Apache:
sudo a2ensite example.com
sudo systemctl restart apache2
นอกจาก Nginx กับ Apache แล้ว ก็ยังมี Web Server ตัวอื่นๆ อีกนะ เช่น LiteSpeed, Caddy แต่สองตัวนี้เป็นที่นิยมที่สุดแล้ว
| Feature | Nginx | Apache |
|---|---|---|
| Architecture | Event-driven, asynchronous | Process-based, multi-threaded |
| Performance | ดีกว่า Apache ในการจัดการ concurrent connections | อาจจะช้ากว่า Nginx ถ้า traffic เยอะๆ |
| Configuration | Config file เข้าใจยากนิดนึง | Config file ค่อนข้างตรงไปตรงมา |
| Use Cases | เหมาะกับ static content, reverse proxy, load balancing | เหมาะกับ dynamic content, shared hosting |
LiteSpeed เนี่ย เค้าเคลมว่าเร็วกว่า Nginx อีก แต่ส่วนใหญ่ต้องเสียเงินนะ ไม่ฟรีเหมือนสองตัวนี้
Caddy นี่ก็มาแรง เน้นง่าย ใช้งานง่ายมากๆ มี HTTPS ให้ฟรีๆ เลย แต่ยังไม่ค่อยเป็นที่นิยมเท่าสองตัวแรก
น้องๆ ลองไปศึกษา SiamCafe Blog ดูนะ ผมเขียนเรื่องพวกนี้ไว้เยอะเลย สมัยก่อนผมทำร้านเน็ต ก็ต้อง optimize พวกนี้ตลอด ไม่งั้นลูกค้าบ่น
สรุปแล้ว Nginx กับ Apache ก็มีข้อดีข้อเสียต่างกันไป เลือกใช้ให้เหมาะกับงานของเราดีที่สุด แต่ถ้าให้ผมแนะนำ ปี 2026 แล้ว Nginx น่าจะไปได้ไกลกว่านะ เพราะมัน scale ได้ดีกว่าเยอะ
ลองเข้าไปอ่านบทความอื่นๆ ใน SiamCafe Blog เพิ่มเติมได้เลย
สมัยผมทำร้านเน็ต SiamCafe เนี่ย เรื่องเซิร์ฟเวอร์นี่สำคัญสุดๆ เพราะถ้าล่มทีนึงคือลูกค้าหายหมด สมัยนั้น Apache นี่กินแรมน่าดูเลย พอมาเจอ Nginx นี่ชีวิตดีขึ้นเยอะเลยครับ เร็ว แรง ประหยัดทรัพยากร
Nginx เนี่ย มันเก่งเรื่องการจัดการ request ที่เข้ามาเยอะๆ แบบ non-blocking asynchronous I/O คือมันรอได้โดยไม่เสียเวลา ต่างจาก Apache ที่พอ request เยอะๆ ก็ต้องสร้าง thread ใหม่มาจัดการ ซึ่งเปลืองทรัพยากรมาก
3 เทคนิคที่ผมใช้แล้วได้ผลจริงๆ นะครับ
location ~* \.(jpg|jpeg|png|gif|ico|css|js)$ {
expires 30d;
add_header Cache-Control public;
}
gzip on;
gzip_disable "msie6";
gzip_vary on;
gzip_proxied any;
gzip_comp_level 6;
gzip_buffers 16 8k;
gzip_http_version 1.1;
gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
upstream backend {
server backend1.example.com;
server backend2.example.com;
}
server {
location / {
proxy_pass http://backend;
}
}
limit_req_zone $binary_remote_addr zone=mylimit:10m rate=1r/s;
server {
location /login {
limit_req zone=mylimit burst=5 nodelay;
# ...
}
}
พวกนี้ลองเอาไปปรับใช้ดูนะครับ มันไม่ได้ยากอย่างที่คิด
ถ้าเป็น hosting ทั่วไป ที่เน้นความง่าย Apache ก็ยังเป็นตัวเลือกที่ดี เพราะมัน config ง่ายกว่า แต่ถ้าอยากได้ performance ที่ดีกว่า Nginx ก็เป็นตัวเลือกที่น่าสนใจกว่าครับ
จริงครับ สมัยผมทำร้านเน็ตนี่เห็นชัดเลย Apache นี่กินแรมเยอะมาก พอเปลี่ยนมาใช้ Nginx นี่เซิร์ฟเวอร์ลื่นขึ้นเยอะเลย เพราะ Nginx มันจัดการ request ได้ดีกว่า
ช่วงแรกๆ อาจจะงงๆ หน่อย แต่พอเข้าใจหลักการแล้วก็ไม่ได้ยากอย่างที่คิดครับ ลองหา tutorial ใน SiamCafe Blog ดูครับ มีเยอะแยะ
Nginx เหมาะกับเว็บไซต์ที่ต้องการ performance สูงๆ มี traffic เยอะๆ หรือต้องการทำ load balancing ครับ พวกเว็บ e-commerce หรือเว็บที่มี API เยอะๆ นี่เหมาะเลย
Nginx ปลอดภัยครับ แต่ก็ต้อง config ให้ดีด้วยนะครับ อย่าลืมอัพเดท security patches ด้วย
สรุปแล้ว Nginx กับ Apache มันก็มีข้อดีข้อเสียต่างกันไป เลือกใช้ให้เหมาะกับงาน ถ้าเน้นง่าย Apache ก็ดี แต่ถ้าเน้น performance Nginx ก็เจ๋งกว่าเยอะ สมัยนี้มี iCafeForex ให้เทรดด้วยนะ ชีวิตมันต้องมีอะไรมากกว่าแค่เซิร์ฟเวอร์ล่ะน้อง
หวังว่าบทความนี้จะเป็นประโยชน์นะครับ ลองเอาไปปรับใช้กันดู