Apache-NGINX

ทำเว็บเซิร์ฟเวอร์ไม่ต้องรู้อะไร?

ก่อนจะไปพูดถึงความแตกต่างระหว่าง Nginx กับ Apache เรามาปรับความเข้าใจเกี่ยวกับ Stack พื้นฐานของ Web server กันก่อน

Web server Stack ที่ได้รับความนิยมที่สุด
คือ LAMP Stack ย่อมาจาก Linux + Apache + MySQL/MariaDB/MongoDB + PHP
.
และอีก Stack คือ LEMP Stack ย่อมาจาก Linux + Nginx + MariaDB/MySQL/MongoDB + PHP

ทั้ง LAMP และ LEMP
ทำงานอยู่บนมาตรฐาน TCP โปรโตคอล
และอยู่บน Application Layer, Presentation Layer
และ Session Layer ครับ
.
ส่วนที่ซับซ้อนเพิ่มขึ้น
จะเกี่ยวข้องกับรูปแบบของการ implement
ที่ไปเพิ่มประสิทธิภาพให้ระบบ Web server
และ Application ครับ
.
เช่น ระบบ Caching
ที่ทำ Caching บนแรมเพื่อลดจำนวนการ Request
ที่ส่งไปยัง Web server และลด Latency
ในการตอบสนอง ผู้เยี่ยมชมเว็บ
.
หรือระบบ Load Balancing
ที่ทำหน้าที่ในการกระจาย Request จากผู้ใช้งาน เป็นต้น

ในปัจจุบันของการ implement
ระบบเว็บเซิร์ฟเวอร์ คือ ต้องรองรับผู้ใช้งานจำนวนมากได้
และปลอดภัย

มันก็คือการ handle requests
รับผู้ใช้ visitor หลายแสนคนได้ในเวลาเดียวกัน

แน่นอนครับ…
องค์ประกอบที่สำคัญคือInfrastructure + Application
.
เว็บแอพพลิเคชั่นหลักหลายแสน
แต่ใช้เซิร์ฟเวอร์หลักหมื่นต้นๆ คุณคิดว่าไง 55+++

เอาล่ะที่นี้
เรามาพูดถึงข้อแตกต่างระหว่าง
Nginx กับ Apache กันคร้าบบ
.
โดยจะเทียบระหว่างเรื่องของ Caching กับ Handling Request.
.
.
## Nginx vs Apache ##
.
.
ทั้ง Nginx และ Apache
จัดเป็นซอฟต์แวร์เว็บเซิร์ฟเวอร์ที่ popular ทั้งคู่
และได้รับความนิยมที่สุด
ถูกติดตั้งเพื่อทำหน้าที่เป็นเว็บโฮสติ้งมากที่สุดในตลาด…
.
[1.] Apache เปิดตัวครั้งแรกในปี 1995
สำหรับ Nginx นั้นเป็นที่รู้จักต่อมาในปี 2004

[2.] Apache และ Nginx
ถูกยิบจับไปใช้งานจริงในองค์กรขนาดใหญ่ทั่วโลก
ที่อยู่ใน Fortune 500 😮

[3.] ส่วนแบ่งการตลาด Nginx ได้เปรียบ Apache
ในด้าน performance ทำให้ Nginx เติบโตอย่างต่อเนื่องมาหลายปีจนล่าสุด F5 Networks เข้าซื้อกิจการด้วยมูลค่า $670 million (เมื่อ 9 พฤษภาคม 2019).
.
.
## Apache ##
.
.
เป็นซอฟต์แวร์โอเพนซอร์ซอนุญาตให้ใช้สิทธิ์ภายใต้ Apache License รุ่น 2.0 (“สิทธิ์การใช้งาน”) สิทธิ์การใช้งานซอฟต์แวร์นี้ ให้ใช้โดยไม่มีค่าใช้จ่าย เว้นแต่จ้างติดตั้ง 55+++
.
ส่วนข้อกำหนดการใช้งาน
เดี๋ยวแอดลงลิงก์ไว้ข้างล่างให้คร้าบบ …
.
Apache ผู้เล่นรายแรกในตลาดซอฟต์แวร์สำหรับเว็บเซิร์ฟเวอร์
และแพกเกจถูกติดตั้ง (pre-installed) อยู่บนคลังของ Linux ดิสโทรต่าง ๆ เช่น Red Hat/Centos, Ubuntu, SUSE/OpenSUSE และดิสโทรอื่น ๆ
.
ฟีเจอร์ที่ Apache เสิร์ฟให้ …

– Configuration

Apache เสิร์ฟคุณด้วย
.htaccess ไฟล์คอนฟิก
ที่สามารถให้เราคอนฟิกระบุบอกได้ว่า
requests URL นี้จะให้ไปพาท directories
ไหนหรือ page load หน้าใดเป็นต้น
.
– Apache Modules
คุณสมบัติที่อนุญาตให้เราติดตั้งโมดูล
เพื่อเพิ่มฟังก์บน Apache ได้
เช่น โมดูล mod_authnz_ldap
ที่ทำให้เราสามารถทำ HTTP Basic authentication
กับ Ldap server ได้
.
หรือโมดูล mod_http2
ที่จะทำให้เครื่องเว็บเซิร์ฟเวอร์ของเรารองรับ HTTP/2 transport layer (รายชื่อโมดูลต่าง ๆ ดูจากลิงก์นี้ ////httpd.apache.org/docs/2.4/mod/)
.
.
Apache รันด้วยโปรเซล httpd
และโดยทั่วไปจำกัด httpd คือ 256
และจุดด้อยคือยิ่งจำนวนการเชื่อมต่อ concurrent TCP connection มากเท่าไหร่ยิ่งกินทรัพยากรทั้ง RAM และ CPU ครับ
.
เมื่อทรัพยากรเหลือน้อย
ไม่เพียงพอเซิร์ฟเวอร์ก็ช้า
เว็บโหลดช้า ส่งผลทำให้ user experience ไม่ดี !!
.
ใครอ่านมาถึงตรงนี้ กดแชร์ไปไว้ก่อน
ไม่แนะนำให้อ่านขณะขับรถ 555+++.
.
.
## Nginx ##
.
.
Nginx จะเขียนแบบนี้ nginx
หรือ NGINX ก็ได้แล้วแต่เลยคร้าบบบ 😅

เป็น project ที่พัฒนาขึ้นโดย Igor Sysoev
นักพัฒนาชาวรัสเซีย และ Nginx มี 2 เวอร์ชั่น
.
1. Nginx
ที่เป็นซอฟต์แวร์โอเพนซอร์ซอนุญาตให้ใช้สิทธิ์ภายใต้ BSD-type license
.
2. และ Nginx Plus
ที่เป็นเวอร์ enterprise สำหรับองค์กร

(ใครก็ได้ที่มีเงินจ่าย 55)

ที่ต้องการการ support จาก F5 Networks
และ enterprise features อื่น ๆ
.
NGINX ถูกออกแบบมาให้(ไม่พยายาม)
ที่จะใช้งานฟังก์ชั่นที่หลากหลายที่จำเป็น
ในการเรียกใช้งาน
และไม่มีการโหลด component ใด ๆ ที่ไม่จำเป็น
สำหรับแอพพลิเคชั่น
.
และมันยังทำหน้าที่เป็นพร็อกซีที่ส่งต่อคำขอ HTTP ไปยัง PHP เซิร์ฟเวอร์ (upstream เช่น Apache bancked)
ส่วนที่สำคัญน้อยกว่าคือความเร็วฝั่งเซิร์ฟเวอร์ NGINX จะไม่ทำ จะโยนไปให้ Apache ทำแทน
#ไม่ใช่แฟนแต่ทำแทนได้ 😄 55+++
.
ปัจจุบัน NGINX มีลูกค้าใช้งานแล้วมากกว่า 1,500 ราย
และ 375 ล้านเว็บไซต์ที่ขับเคลื่อนด้วย NGINX ครับ
.
– Configuration

Nginx รูปแบบการคอนฟิกและกำหนดค่าต่างจาก Apache
มันไม่สนใจ .htaccess ที่ต้องไปเสียเวลาเช็ค

ดังนั้นทำให้มีประสิทธิภาพ
และทำงานได้รวดเร็ว
และ Nginx อาจไม่ได้ใช้งานอย่างกว้างขวางกับผู้ให้ทั่ว ๆ ไป
ที่จะติดตั้งเพียง Nginx เพรียว ๆ
.
แต่ทุกผู้ให้บริการโฮสติ้ง (hosting providers)
ส่วนใหญ่ล้วนแต่ใช้ Nginx ร่วมกันกับ Apache ครับ
หรือบริการโฮสติ้งระดับพรีเมี่ยมติดตั้งเฉพาะ Nginx และ PHP-FPM.
.
.
– Nginx Modules
โมดูลสำหรับ Nginx จะถูก build ติดตั้งมาพร้อมใช้งานอัตโนมัติ
และการเพิ่มโมดูลหลังการติดตั้งนั้นอาจจะมีความซับซ้อนกว่าเล็กน้อยอยู่บ้างครับ
.
ซึ่งตั้งแต่เวอร์ชัน 1.9.11 มีการเปลี่ยนแปลง modules repository ข้อมูลของโมดูลที่เป็น official/verified ถูกสงวนไว้สำหรับลูกค้าเท่านั้น

(โมดูลพรีเมียมเราไม่ฟรี 555+++)
.
และสำหรับ Nginx 1.16.1 ประกาศสนับสนุนโปรโตคอล QUIC
และ HTTP/3 ที่เร็วและปลอดภัย

ที่เปลี่ยนมาใช้ UDP ช่วยส่งข้อมูลแทน TCP
ออกแบบกระบวนการ handshake ใหม่
บีดให้รวม TLS มาด้วยเลย
(ซึ่งก็แปลว่า QUIC เข้ารหัสทุกกรณีเสมอ)
.

“ Apache ก็เหมือนกับ Microsoft Word มีตัวเลือกนับล้านแต่คุณต้องการเพียง 6 สิ่ง ซึ่ง NGINX ทำ 6 สิ่งนั้นมันถึงเร็วกว่า Apache”

วลีเด็ด ๆ จาก – Chris Lea (Infrastructure geek and director of product @ joyent dot com)

“Apache is like Microsoft Word. It has a million options but you only need six. NGINX does those six things, and it does five of them 50 times faster than Apache.”
.

(ที่ว่า 50 เท่าแอดยังไม่มีข้อมูล 55+++)
ว่าแต่ 6 สิ่งอย่างของอีตานี่มีไรบ้างอ่าาา 😂😂😂
.
ใครเพลิน อ่านจนจบ
พิมพ์ #อ่านจบ ก่อนกดแชร์ มาหน่อยครับ
🙏🙏🙏
.
Source:
– Apache License รุ่น 2.0
http://www.apache.org/licenses/LICENSE-2.0

– Nginx vs. Apache////www.nginx.com/blog/nginx-vs-apache-our-view/
.

#SUSEMAN#APACHE#NGINX

Leave a Reply

Scroll to top
X