nginx

מתוך ויקיפדיה, האנציקלופדיה החופשית
קפיצה אל: ניווט, חיפוש
nginx
Nginx logo.svg
מפתח איגור סיסוייב
תאריך השקה 4 באוקטובר 2004
גרסה אחרונה 1.6.0
ב־21 באפריל 2015[1]
מערכת הפעלה Windows[2] ,linux, BSD variants, OS X, AIX, HP-UX
סוג רישיון רישיון BSD (שני סעיפים)
קטגוריה שרת HTTP
www.nginx.org

אנג'ין-אקס המוכר בשם nginx (מבטאים "engine X") הוא שרת אינטרנט שמתמקד בעיקר בשימוש נמוך בזיכרון וביצועים גבוהים. בנוסף, הוא יכול לשמש כשרת פרוקסי הפוך עבור הפרוטוקולים HTTP, SMTP, HTTPS, POP3 ו-IMAP. פותח על ידי איגור סיסוייב בשנת 2002, ורץ על windows, linux, BSD variants, OS X, AIX, HP-UX ושוחרר לראשונה ב-4 באוקטובר 2004, הוא מופץ בקוד פתוח תחת רישיון BSD.

שרתי nginx נפוצים בעיקר בקרב אתרים גדולים המספקים תוכן רב, היות שהוא ידוע בהיותו שרת זריז, המספק ביצועים טובים יותר ממתחריו[דרוש מקור]. נכון לאוגוסט 2011 כעשירית מהאתרים באינטרנט משתמשים ב-nginx[3].

תכונות (Features)[עריכת קוד מקור | עריכה]

Nginx יכול להיפרס כדי לשרת תוכן HTTP דינמי ברשת, בעזרת FastCGI. הוא משתמש בSCGI בתור מפעיל שפת תסריט, ובמודולים של שרתי WSGI. בנוסף, הוא יכול לשמש כמאזן עומסים באפליקציות מסוימות[4].

Nginx משתמש בגישה אסינכרונית מבוססת-אירועים(Event-Driven) כדי לטפל בבקשות, זאת במקום המודל של Apache HTTP Server שגישתו הדיפולטיבית משתמשת בתהליכונים, כאשר כאן האירוע עצמו נדרש בשביל לעבד בצורה א-סינכרונית את הבקשה. הארכיטקטורה המודולרית של גישתו מבוססת-האירועים של Nginx[5], יכולה לספק לנו ביצועים צפויים תחת עומסים גבוהים. כלומר, שנוכל לחזות בדיוק בכמה משאבים נצטרך להשתמש כאשר העומס יהיה גדול.

לפי סקר[6] שרתי האינטרנט של חברת Netcraft, שפורסם באוקטובר 2015, Nginx נמצא במקום השני כשרת האינטרנט הנפוץ ביותר לאורך כל האתרים ה"פעילים" (15.33% מכל האתרים שנסקרו), וגם עבור מיליון האתרים ה"עסוקים" ביותר (האתרים שמכילים הכי הרבה כניסות, סה"כ 23.66% מהאתרים שנסקרו). לפי W3Techs, השתמשו בו 29.7% אתרים מתוך רשימת טופ-מיליון האתרים, 39.5% מתוך רשימת טופ 100,000 האתרים, ו-47.6% מתוך רשימת טופ 10,000 האתרים[7]. לפי BuiltWith, השתמשו בו 36.6% מתוך רשימת טופ 10,000 האתרים, והחלק שלו בטופ 10,000, 100,000 ומיליון האתרים הפעילים, גדל משמעותית[8]. ויקיפדיה משתמשת ב-Nginx בתור ה-SSL termination proxy[9]. החל משחרור OpenBSD, גרסת 5.2 (1 לנובמבר 2012), Nginx הפך חלק מבסיס מערכת ההפעלה OpenBSD, כאשר הוא נותן אלטרנטיבה לפיצול של המערכת המקורית מ-Apache 1.3, אותה הוא היה אמור להחליף[10], אבל בסופו של דבר הוחלף על ידי httpd[11]

תכונות פרוקסי ושרת HTTP[עריכת קוד מקור | עריכה]

  • היכולת להתמודד עם יותר מ-10,000 חיבורים סימולטניים, כאשר משתמשים במעט מאוד זיכרון (~2.5 מגה בייט עבור 10,000 חיבורים בתצורת "השאר בחיים" - Keep Alive)
  • טיפול בקבצים סטטיים, קובצי אינדקס ואינדוקס אוטומטי
  • פרוקסי הפוך והטמנת זיכרון
  • איזון עומסים עם בדיקת תקינות פנימית[12].
  • עמידות בפני תקלות
  • TLS/SSL עם SNI, בעזרת OpenSSL.
  • תמיכה ב-FastCGI, SCGI, uWSGI עם הטמנה.
  • כתובת IP ושם מבוססי שרתים וירטואלים
  • תמיכה ב-IPv6
  • תמיכה בפרוטוקולי התקשורת HTTP/2[13] ו- SPDY[14]
  • Websockets כתכונה מובנית, ותמיכה בכותרת HTTP/1.1 Upgrade header[15]
  • סטרימינג של FLV[16] ובנוסף גם MP4[17]
  • אימות כניסה לדפים ברשת (מנגון בקרת אימון)
  • כיווץ והרחבה בעזרת gzip[18]
  • כתיבה מחודשת של כתובת URL[19][20][21]
  • כיווץ יומני לוג במהלך הריצה הסטנדרטית[22]
  • הגבלות על כמות החיבורים המקביליים[23]
  • הגבלת קצב טיפול בבקשות[24]
  • ויסות רוחב פס[25]
  • כתובת IP מבוססת מיקום גאוגרפי - גאולוקיישן[26]
  • מעקב אחר משתמשים
  • בניית סקריפטים מוטבעת בשפת Perl[27]

תכונות דואר פרוקסי[עריכת קוד מקור | עריכה]

תכונות אחרות כוללות עדכון קובצי exe, והגדרות מערכת מחדש ללא איבוד חיבורים[28], בנוסף קיימת ארכיטקטורה שמבוססת על תמיכה במודולים (חיבור וניתוק פשוט) גם צד שלישי[29] וגם רשמיים (Core)[30] המוצר Nginx Plus, שהוא הגרסה בתשלום של המוצר הרגיל, כוללת תכונות כמו איזון עומסים מתקדם[31] וניטור מתקדם של ביצועי השרת[32].

היסטוריה[עריכת קוד מקור | עריכה]

איגור סוסייס החל את הפיתוח של Nginx בשנת 2002[33]. במקור, התוכנה פותחה כדי למלא את החוסרים עבור שרתים כמו Rambler, שהיה משרת מעל 500 מיליון בקשות בכל יום, נכון לספטמבר 2008[34] החברה, Nginx inc, נוסדה ביולי 2011 על ידי סוסייב, זאת כדי לספק מוצרים לשימוש מסחרי, ולספק תמיכה לתוכנה שפיתח.[35] המיקום העיקרי של החברה הוא בסן פרנסיסקו, קליפורניה.[36]. החברה הציעה תמיכה מסחרית במוצר בפברואר 2012[37][38], ותמיכה במוצר Nginx Plus באוגוסט 2013.[39] באוקטובר 2013, דווח על השקעה של 10 מיליון דולר, על ידי New Enterprise Associates בחברה.[40] מבין המשקעים האחרים בחברה, ניתן למצוא את אהרון ליווי (מקים שירות הענן Box)[41], את אוטומטיק (החברה שפיתחה את פלטפורמת הבלוגים וורדפרס) ואת MaxCDN.[42]

גרסה תאריך שחרור מקורי גרסה אחרונה תאריך שחרור סטטוס נוכחי
0.5 2006-12-04 0.5.38 2009-09-14[43] Legacy
0.6 2007-06-14 0.6.39 2009-09-14[44] Legacy
0.7 2008-05-19 0.7.69 2011-07-19[45] Legacy
0.8 2009-06-02 0.8.55 2011-07-19[46] Legacy
1.0 2011-04-12 1.0.15 2012-04-12[47] Legacy
1.2 2012-04-23 1.2.9 2013-05-13[48] Legacy
1.4 2013-04-24 1.4.7 2014-03-18[49] Legacy
1.6 2014-04-24 1.6.3 2015-04-07[50] Legacy
1.8 2015-04-21 1.8.0 2015-04-21[51] Stable
1.9 2015-04-28 1.9.6 2015-10-27[52] Mainline

משתמשים[עריכת קוד מקור | עריכה]

nginx פותחה במקור עבור פורטל גדול בשפה הרוסית בשם רמבלר. התכנה התבררה כנוחה והפכה לשרת אינטרנט פופולרי הנמצאת בשימוש באתרים גדולים רבים ביניהם וורדפרס.קום.

ראו גם[עריכת קוד מקור | עריכה]

קישורים חיצוניים[עריכת קוד מקור | עריכה]

הערות שוליים[עריכת קוד מקור | עריכה]

  1. ^ http://mailman.nginx.org/pipermail/nginx-announce/2015/000156.html גרסה יציבה אחרונה
  2. ^ http://nginx.org/en/docs/windows.html אנג'ין איקס למערכת ההפעלה windows
  3. ^ סקר המרשתת של אוגוסט 2011 של חברת Netcraft
  4. ^ https://www.linode.com/docs/uptime/loadbalancing/how-to-use-nginx-as-a-front-end-proxy-server-and-software-load-balancer/
  5. ^ http://www.aosabook.org/en/nginx.html
  6. ^ http://news.netcraft.com/archives/2015/10/16/october-2015-web-server-survey.html
  7. ^ http://w3techs.com/technologies/cross/web_server/ranking
  8. ^ http://trends.builtwith.com/Web-Server/nginx
  9. ^ ראו כאן
  10. ^ www.openbsd.org/faq/upgrade52.html#nginx
  11. ^ http://undeadly.org/cgi?action=article&sid=20140827065755
  12. ^ http://nginx.org/en/docs/http/ngx_http_upstream_module.html
  13. ^ http://nginx.org/en/docs/http/ngx_http_v2_module.html
  14. ^ http://mailman.nginx.org/pipermail/nginx-devel/2012-June/002343.html
  15. ^ https://trac.nginx.org/nginx/changeset/5073/nginx
  16. ^ http://nginx.org/en/docs/http/ngx_http_flv_module.html
  17. ^ http://nginx.org/en/docs/http/ngx_http_mp4_module.html
  18. ^ http://nginx.org/en/docs/http/ngx_http_gunzip_module.html
  19. ^ http://nginx.org/en/docs/http/ngx_http_rewrite_module.html#rewrite
  20. ^ http://mailman.nginx.org/pipermail/nginx/2013-February/037592.html
  21. ^ http://mdoc.su/
  22. ^ http://nginx.org/en/docs/http/ngx_http_log_module.html#access_log
  23. ^ http://nginx.org/en/docs/http/ngx_http_limit_conn_module.html
  24. ^ http://nginx.org/en/docs/http/ngx_http_limit_req_module.html
  25. ^ http://nginx.org/en/docs/http/ngx_http_core_module.html#limit_rate
  26. ^ http://nginx.org/en/docs/http/ngx_http_geoip_module.html
  27. ^ http://nginx.org/en/docs/http/ngx_http_perl_module.html
  28. ^ http://nginx.org/en/docs/control.html
  29. ^ https://www.nginx.com/resources/wiki/community/
  30. ^ http://nginx.org/en/docs/
  31. ^ https://www.nginx.com/products/application-load-balancing/
  32. ^ https://www.datadoghq.com/blog/how-to-monitor-nginx/
  33. ^ http://www.freesoftwaremagazine.com/articles/interview_igor_sysoev_author_apaches_competitor_nginx
  34. ^ http://www.linuxjournal.com/article/10108
  35. ^ https://www.nginx.com/company/
  36. ^ http://www.sec.gov/Archives/edgar/data/1588848/000158884813000001/xslFormDX01/primary_doc.xml
  37. ^ http://www.eweek.com/c/a/Linux-and-Open-Source/NGINX-Launches-Commercial-Support-for-OpenSource-Web-Server-457321
  38. ^ http://www.zdnet.com/article/commercial-support-now-available-for-the-open-source-nginx-web-server/
  39. ^ http://nginx.com/news/nginx-inc-launches-nginx-plus/
  40. ^ www.eweek.com/servers/nginx-raises-10-million-in-new-funding-for-server-development.html
  41. ^ http://venturebeat.com/2013/10/15/nginx-ties-up-a-sweet-10m-funding-deal-and-hundreds-of-millions-of-users/
  42. ^ http://www.cnet.com/news/nginx-upgrade-funded-by-fans-of-googles-spdy-web-protocol/
  43. ^ http://nginx.org/en/CHANGES-0.5
  44. ^ http://nginx.org/en/CHANGES-0.6
  45. ^ http://nginx.org/en/CHANGES-0.7
  46. ^ http://nginx.org/en/CHANGES-0.8
  47. ^ http://nginx.org/en/CHANGES-1.0
  48. ^ http://nginx.org/en/CHANGES-1.2
  49. ^ http://nginx.org/en/CHANGES-1.2
  50. ^ http://nginx.org/en/CHANGES-1.6
  51. ^ http://nginx.org/en/CHANGES-1.8
  52. ^ http://nginx.org/en/CHANGES