nginx เอนจิ้นเอ็ก คืออะไร
ความเป็นมาของ Nginx
Nginx พัฒนาโดย อิกอร์ซิสโซอีฟ และเปิดให้ใช้งานในปี 2547 เอ็นจินเอ็กซ์เป็นที่รู้จักในแง่การมีประสิทธิภาพสูงความมีเสถียรภาพ มีการใช้งานทรัพยากรระบบต่ำ ในตอนแรก Nginx ไม่โด่งดังนักเนื่องจากผู้พัฒนาไม่เขียนเอกสารที่เป็นภาษาอังกฤษเลย ทำให้ผู้ใช้งานมีอยู่ในวงกว้าง คือแถบๆ รัสเซียเท่านั้น ต่อมาเมื่อคนเริ่มรู้จักมากขึ้น ก็มีการแปลเอกสารไว้ให้สามารถดูตัวอย่างได้ แต่ยังไม่เป็นเอกสารอย่างเป็นทางการเท่าไรนัก ต้องอาศัยประสบการณ์บ้างเล็กน้อยในการอ่าน
จุดเด่นของเจ้าตัว Nginx คือ มีประสิทธิภาพมากกว่าเจ้าตัว Apache ด้วยการที่ใช้ทรัพยากรของเครื่องน้อยกว่า เช่น RAM และ CPU ทำให้ Server ทำงานได้มากยิ่งขึ้น แต่เนื่องมาจากว่าการ config ที่ค่อนข้างจะยุ่งยากรวมไปถึงการใช้งานบางอย่างที่ไม่ได้รองรับเหมือนกันกับตัว Apache ทำให้ตัว Nginx ถูกใช้งานเพียงบางอย่าง เช่น การทำเว็บไซต์เกี่ยกับดาวน์โหลด การทำเว็บไซต์เกี่ยวกับพวก streaming การทำเว็บไซต์อัปโหลด ซึ่งจะมีพื้นที่สามารถรองรับจำนวนของผู้ใช้ได้มากกว่านั่นเอง
การใช้งาน Nginx
การใช้งานจริงจะใช้ผสมข้อดีของ Nginx Web Server กับ Apache Web Server เข้าด้วยกัน คือ ให้ Nginx เป็นตัวรับ Request แล้วส่งไปให้กับ Apache เพื่อประมวลผล PHP และนำผลลัพธ์นั้นมาแสดงให้ ส่วนตัว Nginx นั่นหลักๆ แล้วจะนำมาใช้กับพวกไฟล์ Media ต่างๆ เช่น รูปภาพ วิดีโอ มากกว่า เนื่องจากการประมวลผลนั้นตัว Nginx ไม่สามารถทำได้โดยตรงต้องเรียกผ่าน fcgi (Fast CGI) อีกทีหนึ่ง (ทำได้เช่นกัน แต่จะ config ยากกว่าส่งให้ Apache ประมวลผลให้)
ข้อดีของ Nginx
- รองรับมารตฐานในด้านความปลดภัย HTTP/2
- รับรองการทำงาน HTTP ได้ครบถ้วน
- ไฟล์ที่เป็น static จะประมวลผลได้เร็วกว่า Apache
- ทำงานแบบ Asynchronous โดยไม่มีการหยุดรออะไรทั้งนั้นแยกๆ กันไปทำงานทันที จึงใช้ทรัพยาน้อยกว่าทำงานได้เร็วกว่า รองรับจำนวนผู้ใช้งานได้มากกว่า Apache
ข้อเสียของ Nginx
- การ config ที่ค่อนข้างจะยุ่งยากกว่า Apache เนื่องจากการออกแบบที่ค่อนข้างต้องการประสิทธิภาพที่สูงทำให้ต้องตัดการประมวลผลที่เป็นด้วยตัวเองออกไป แล้วไปให้โปรเซสอื่นหรือระบบอื่นจัดการประมวลผลแบบ Dynamic ให้แทนเช่น FastCGI, SCGI, uWSGI, memcache ทำให้
- การบำรุงรักษายากกว่า Apache เนื่องจาก Nginx ได้มีการออกแบบให้เป็นโมดูลเช่นกันแต่ไม่ได้ยืดหยุนมาก ถ้าจะต้องการเพิ่มหรือแก้ไขโมดูลต่างๆ จะไม่ค่อยสะดวก
- การเอาไปทำงานได้หลายแพลตฟอร์ม ยังพอร์ตไปไม่ครบนัก ติดตั้งไม่ง่ายนัก การทำงานร่วมกับองค์ประกอบอื่นยังต้องตั้งค่าอีกเยอะ ต่างกับ Apache ที่พอร์ตไปทุกที่ได้ง่ายกว่า
ที่มา:https://www.softmelt.com/article.php?id=631
ไม่มีความคิดเห็น:
แสดงความคิดเห็น