วันพุธที่ 21 กันยายน พ.ศ. 2554

Nginx ราชาองค์ใหม่ ผู้มาแทน Apache




กาลครั้งนึงนานมาแล้ว ในปี ค.ศ. 1995 มีระบบ Web Server นึงเกิดขึ้นมาชื่อว่า
Apache นับตั้งแต่นั้นมาโลกก็ได้เริ่มรู้จัก และมันก็เป็นที่นิยมเป็นอย่างมาในปัจจุบันแทบจะ

บอกได้เลยว่าถ้า
จะใช้ Linux ทำ web server ใครไม่เคย Apache ก็คงถือว่าเสียชาติเกิดมาก
และจนถึงถึงวันนี้่ 13 ปีกว่าแล้ว มันก็เป็นเวลานานพอดูที่ Apache ครองตำแหน่ง

อันดับหนึ่งในตลาดตอนนี้
เมื่อไม่นานมานี้ลอง Search google trend ดูก็พบว่าความนิยมก็เริ่มตกลงเรื่อยๆ

http://www.google.com/trends?q=apache&ctab=0&geo=all&date=all&sort=0


เพราะว่าความต้องการใช้ Web server ใช้งานแบบเดิมๆนั้นเริ่มไม่เป็นที่สนใจของ

webmaster แล้ว
ในขณะเดียวกัน Web server ที่เกิดขึ้นมาใหม่ๆเช่น Lighttpd ก็แรงไม่แพ้กันแต่ยัง
ต้องใช้เวลาพัฒนาอีกพอสมควรจึงจะมีความสามารถเทียบเท่า Apache
ซึ่งปัญหานี้ไม่เกิดกับ Nginx เลยเพราะทุกอย่างแทบจะมีพร้อมแล้วดู จาก graph นี้

จะเห็น Trend ของ Nginx นั้นพุ่งสูงมากกำลังจะแซง Lighttpd ในไม่ช้า

http://www.google.com/trends?q=nginx+,+lighttpd+&ctab=0&geo=all&date=all&sort=1

เป็นที่ยอมรับกันว่าทุกวันนี้ใครๆก็มีหนังมีเพลงอยู่บนเว็บ
ลำพัง Apache เดิมๆนั้นไม่ได้ถูกออกแบบมาให้รองรับสิ่งเหล่านี้แต่ต้นการพัฒนา

module เสริมต่างๆออกมาเลย
ดูไม่เข้ารูปเข้ารอยเท่าไหร่ ประกอบกับ Architecture แบบเดิมที่เป็นข้อจำกัด ทำให้

ไม่สามารถทำงานได้เร็วพอ ตามความต้องการของ Multimedia cyber ในขณะนี้
ทำให้นาย Rambler นักพัฒนาจาก Russia ได้เล่งเห็นข้อเสียส่วนนี้ได้ และได้

พัฒนาระบบ Web Server ขึ้นมาใหม่ในชื่อว่า Nginx อ่านว่า EngineX
ระบบ web server ที่ปฏิวัติวงการ Web server ทั้งโลกเลยก็ว่าได้เพราะนอกจากมี
เปิดตัวได้ไม่นาน ศักยภาพการประมวลผลที่เร็วกว่า Apache
[attachmentid=847]

และหากไม่ดีจริงเว็บเหล่านี้คงไม่เลือกใช้ Nginx แน่นอน

* hulu
* WordPress.com
* Kongregate
* Penny-Arcade
* Gawab
* 4chan
* Plurk
* Gravatar
* YouPorn
* Urban Dictionary


แล้วยังมี Mod เด่นๆที่รองรับการทำงานมากกว่า Apache ด้วย
การเปรียบเทียบ Mod เสริมต่างๆดังนี้

Nginx module Apache module Lighttpd module
HTTP Upstream Module mod_proxy_balancer mod_proxy_core
Access Module mod_access mod_access
Auth Basic Module mod_auth mod_auth
AutoIndex Module mod_autoindex mod_dirlisting
Browser Module mod_setenvif  ?
Charset Module none none
Empty GIF Module none none
FastCGI Module mod_fastcgi , mod_fcgid mod_fastcgi
GEO Module mod_geoip mod_geoip
Gzip Compression Module mod_deflate mod_deflate
Gzip Pre-Compression Module none none
HTTP Headers Module mod_headers mod_setenv
HTTP Referer Module mod_setenvif  ?
Limit Zone Module mod_limitipconn mod_evasive
Log Module mod_log_config mod_accesslog
Map Module  ?  ?
Memcached Module none none
Proxy Module mod_proxy mod_proxy
Rewrite Module mod_rewrite mod_rewrite
SSI Module mod_include mod_ssi
UserID Module mod_usertrack mod_usertrack
Addition Module mod_layout  ?
Embedded Perl Module mod_perl none
FLV Module mod_flvx mod_flv_streaming
Real IP Module mod_rpaf mod_extforward
SSL Module mod_ssl SSL
Stub Status Module mod_status mod_status
Substitution Module mod_line_edit  ?
WebDAV Module mod_dav mod_webdav
UserDir Equivalent mod_userdir mod_userdir


ที่มา
http://citecclub.org
http://wiki.nginx.org/NginxModuleComparisonMatrix