Nginx

Nginx (או nginx, מבוטא "engine X" אנג'ין-אקס) הוא שרת אינטרנט שמתמקד בעיקר בשימוש בזיכרון מועט ובביצועים גבוהים. בנוסף, הוא יכול לשמש כשרת פרוקסי הפוך עבור הפרוטוקולים HTTP, SMTP, HTTPS, POP3 ו-IMAP. פותח על ידי איגור סיסוייב בשנת 2002, ורץ על windows, לינוקס, BSD variants, OS X, AIX, HP-UX ושוחרר לראשונה ב-4 באוקטובר 2004, הוא מופץ בקוד פתוח תחת רישיון BSD. שרתי nginx נפוצים בעיקר בקרב אתרים גדולים המספקים תוכן רב, משום שnginx מתוכנת לטיפול במספר רב של בקשות תוך צריכת פחות משאבים. נכון לאוגוסט 2011 כעשירית מהאתרים באינטרנט משתמשים ב-nginx. Nginx יכול להיפרס כדי לשרת תוכן HTTP דינמי ברשת, בעזרת FastCGI. הוא משתמש ב-SCGI בתור מפעיל שפת תסריט, ובמודולים של שרתי WSGI. בנוסף, הוא יכול לשמש כמאזן עומסים באפליקציות מסוימות. Nginx משתמש בגישה אסינכרונית מבוססת-אירועים (Event-Driven) כדי לטפל בבקשות, זאת במקום המודל של Apache HTTP Server שגישתו הדיפולטיבית משתמשת בתהליכונים, כאשר כאן האירוע עצמו נדרש בשביל לעבד בצורה א-סינכרונית את הבקשה. הארכיטקטורה המודולרית של גישתו מבוססת-האירועים של Nginx, יכולה לספק לנו ביצועים צפויים תחת עומסים גבוהים. כלומר, נוכל לחזות בדיוק בכמה משאבים נצטרך להשתמש כאשר העומס יהיה גדול. לפי סקר שרתי האינטרנט של חברת Netcraft, שפורסם באוקטובר 2015, Nginx נמצא במקום השני כשרת האינטרנט הנפוץ ביותר לאורך כל האתרים ה"פעילים" (15.33% מכל האתרים שנסקרו), וגם עבור מיליון האתרים ה"עסוקים" ביותר (האתרים שמכילים הכי הרבה כניסות, סה"כ 23.66% מהאתרים שנסקרו). לפי W3Techs, השתמשו בו 29.7% אתרים מתוך רשימת טופ-מיליון האתרים, 39.5% מתוך רשימת טופ 100,000 האתרים, ו-47.6% מתוך רשימת טופ 10,000 האתרים. לפי BuiltWith, השתמשו בו 36.6% מתוך רשימת טופ 10,000 האתרים, והחלק שלו בטופ 10,000, 100,000 ומיליון האתרים הפעילים, גדל משמעותית. ויקיפדיה משתמשת ב-Nginx בתור ה-SSL termination proxy. החל משחרור OpenBSD, גרסת 5.2 (1 בנובמבר 2012), Nginx הפך חלק מבסיס מערכת ההפעלה OpenBSD, כאשר הוא נותן אלטרנטיבה לפיצול של המערכת המקורית מ-Apache 1.3, אותה הוא היה אמור להחליף, אבל בסופו של דבר הוחלף על ידי httpd. שרתי nginx כוללים ארכיטקטורת רכיבים (modules) שמכתיבים את התנהגות השרת. התנהגותם של רכיבים אלה מתקבלת על ידי הנחיות (directives). הרכיב המרכזי בין הרכיבים הוא main אשר כולל את events ו-http. הרכיב server נכלל בתוך http והרכיב location נכלל בתוך server. ניתן לעשות את כל הקסטומיזציה לרכיבים השונים בתוך הקובץ nginx.conf או שניתן לפצל את הקסטומיזציה לקבצים נוספים (כמו default.conf או ה site-confs השונים). נכון לגרסה 1.10.3 החלוקה הטבעית (כלומר זו שנתונה מיד לאחר ההתקנה) היא nginx.conf ו default.conf. בכל מקרה, הראשון בהיררכיה הזו nginx.conf והשני הוא default.conf כאשר האחרון בהיררכיה משכתב הגדרות של קובץ קודם בה (bottom top) ותפיסה זו של "מאוחר מבטל קודמו" נכונה גם כשעובדים עם קובץ אחד. ההנחיות נכתבות בקבצים השונים בתוך בלוקים. ההנחיות הנוגעות לכל רכיב נכתבות בבלוק (block) עם שם זהה לרכיב (למשל, ההנחיות ל server ייכתבו בבלוק בשם server ומכאן הכינוי "server block"). היכולת להתמודד עם יותר מ-10,000 חיבורים סימולטניים, כאשר משתמשים במעט מאוד זיכרון (~2.5 מגה בייט עבור 10,000 חיבורים בתצורת "השאר בחיים" - Keep Alive) טיפול בקבצים סטטיים, קובצי אינדקס ואינדוקס אוטומטי פרוקסי הפוך והטמנת זיכרון איזון עומסים עם בדיקת תקינות פנימית עמידות בפני תקלות TLS/SSL עם SNI, בעזרת OpenSSL. תמיכה ב-FastCGI, SCGI, uWSGI עם הטמנה. כתובת IP ושם מבוססי שרתים וירטואליים תמיכה ב-IPv6 תמיכה בפרוטוקולי התקשורת HTTP/2 ו- SPDY Websockets כתכונה מובנית, ותמיכה בכותרת HTTP/1.1 Upgrade header סטרימינג של FLV ובנוסף גם MP4 אימות כניסה לדפים ברשת (מנגנון בקרת אימון) כיווץ והרחבה בעזרת gzip כתיבה מחודשת של כתובת URL כיווץ יומני לוג במהלך הריצה הסטנדרטית הגבלות על כמות החיבורים המקביליים הגבלת קצב טיפול בבקשות ויסות רוחב פס כתובת IP מבוססת מיקום גאוגרפי - גאולוקיישן מעקב אחר משתמשים בניית סקריפטים מוטבעת בשפת Perl תמיכה ב-TLS/SSL תמיכה ב-STARTTLS פרוקסי של SMTP,POP3, וגם IMAP תכונות אחרות כוללות עדכון קובצי exe, והגדרות מערכת מחדש ללא איבוד חיבורים, בנוסף קיימת ארכיטקטורה שמבוססת על תמיכה במודולים (חיבור וניתוק פשוט) גם צד שלישי וגם רשמיים (Core) המוצר Nginx Plus, שהוא הגרסה בתשלום של המוצר הרגיל, כוללת תכונות כמו איזון עומסים מתקדם וניטור מתקדם של ביצועי השרת. סוסייב החל את הפיתוח של Nginx בשנת 2002. במקור, התוכנה פותחה כדי למלא את החוסרים עבור שרתים כמו Rambler, שהיה משרת מעל 500 מיליון בקשות בכל יום, נכון לספטמבר 2008 החברה, Nginx inc, נוסדה ביולי 2011 על ידי סוסייב, זאת כדי לספק מוצרים לשימוש מסחרי, ולספק תמיכה לתוכנה שפיתח. המיקום העיקרי של החברה הוא בסן פרנסיסקו, קליפורניה. החברה הציעה תמיכה מסחרית במוצר בפברואר 2012, ותמיכה במוצר Nginx Plus באוגוסט 2013. באוקטובר 2013, דווח על השקעה של 10 מיליון דולר, על ידי New Enterprise Associates בחברה. מבין המשקעים האחרים בחברה, ניתן למצוא את אהרון ליווי (מקים שירות הענן Box), את אוטומטיק (החברה שפיתחה את פלטפורמת הבלוגים וורדפרס) ואת MaxCDN. nginx פותחה במקור עבור פורטל אינטרנט גדול בשפה הרוסית בשם רמבלר. התכנה התבררה כנוחה והפכה לשרת אינטרנט פופולרי הנמצאת בשימוש באתרים גדולים רבים ביניהם וורדפרס. קום. שרת אינטרנט OpenSSL Apache מדיה וקבצים בנושא Nginx בוויקישיתוף אתר האינטרנט הרשמי של Nginx (באנגלית וברוסית) Nginx, ברשת החברתית פייסבוק Nginx, ברשת החברתית אקס (טוויטר) nginx – האתר הרשמי nginx ויקי Nginx for windows זהר ארד, שלום Apache – ברוך הבא NGINX, באתר גיקטיים, ‏31 במרץ 2011 Use NGINX as a Front-end Proxy and Software Load Balancer, Linode Guides & Tutorials, ‏2023-03-09 (באנגלית) Survey, July 2023 Web Server Survey | Netcraft, www.netcraft.com, ‏2023-07-31 (באנגלית אמריקאית) סקר המרשתת של אוגוסט 2011 של חברת Netcraft https://www.linode.com/docs/uptime/loadbalancing/how-to-use-nginx-as-a-front-end-proxy-server-and-software-load-balancer/ http://www.aosabook.org/en/nginx.html http://news.netcraft.com/archives/2015/10/16/october-2015-web-server-survey.html http://w3techs.com/technologies/cross/web_server/ranking http://trends.builtwith.com/Web-Server/nginx ראו כאן www.openbsd.org/faq/upgrade52.html#nginx http://undeadly.org/cgi?action=article&sid=20140827065755 Nginx - Beginner's guide, at nginx.org. NBG http://nginx.org/en/docs/http/ngx_http_upstream_module.html http://nginx.org/en/docs/http/ngx_http_v2_module.html http://mailman.nginx.org/pipermail/nginx-devel/2012-June/002343.html https://trac.nginx.org/nginx/changeset/5073/nginx http://nginx.org/en/docs/http/ngx_http_flv_module.html http://nginx.org/en/docs/http/ngx_http_mp4_module.html http://nginx.org/en/docs/http/ngx_http_gunzip_module.html http://nginx.org/en/docs/http/ngx_http_rewrite_module.html#rewrite http://mailman.nginx.org/pipermail/nginx/2013-February/037592.html http://mdoc.su/ http://nginx.org/en/docs/http/ngx_http_log_module.html#access_log http://nginx.org/en/docs/http/ngx_http_limit_conn_module.html http://nginx.org/en/docs/http/ngx_http_limit_req_module.html http://nginx.org/en/docs/http/ngx_http_core_module.html#limit_rate http://nginx.org/en/docs/http/ngx_http_geoip_module.html http://nginx.org/en/docs/http/ngx_http_perl_module.html http://nginx.org/en/docs/control.html https://www.nginx.com/resources/wiki/community/ http://nginx.org/en/docs/ https://www.nginx.com/products/application-load-balancing/ https://www.datadoghq.com/blog/how-to-monitor-nginx/ http://www.freesoftwaremagazine.com/articles/interview_igor_sysoev_author_apaches_competitor_nginx http://www.linuxjournal.com/article/10108 https://www.nginx.com/company/ http://www.sec.gov/Archives/edgar/data/1588848/000158884813000001/xslFormDX01/primary_doc.xml http://www.eweek.com/c/a/Linux-and-Open-Source/NGINX-Launches-Commercial-Support-for-OpenSource-Web-Server-457321 http://www.zdnet.com/article/commercial-support-now-available-for-the-open-source-nginx-web-server/ http://nginx.com/news/nginx-inc-launches-nginx-plus/ www.eweek.com/servers/nginx-raises-10-million-in-new-funding-for-server-development.html http://venturebeat.com/2013/10/15/nginx-ties-up-a-sweet-10m-funding-deal-and-hundreds-of-millions-of-users/ http://www.cnet.com/news/nginx-upgrade-funded-by-fans-of-googles-spdy-web-protocol/ http://nginx.org/en/CHANGES-0.5 http://nginx.org/en/CHANGES-0.6 http://nginx.org/en/CHANGES-0.7 http://nginx.org/en/CHANGES-0.8 http://nginx.org/en/CHANGES-1.0 http://nginx.org/en/CHANGES-1.2 http://nginx.org/en/CHANGES-1.6 http://nginx.org/en/CHANGES-1.8 http://nginx.org/en/CHANGES