מה זה NGINX?

ע"י Dean, פורסם 25/05/2018

אז מה זה NGINX?

nginx המכונה גם engine x הוא שרת HTTP בדיוק כמו Apache המוכר. nginx ידוע ביתרונותיו לשיפור בביצועים של האתרים שהוא מציג תוך כדי חיסכון בזיכרון(ram). nginx פותח על ידי איגור סיסואב בשנת 2004, nginx מופץ בקוד פתוח(Open Source) תחת רישיון BSD. nginx נפוץ בעיקר בקרב אתרים גדולים, משום ש-nginx מתוכנת לטיפול במספר רב של בקשות תוך צריכת פחות משאבים בין עם משאבי מעבד וזיכרון. ניתן לראות מוניטור של שרת שמופעל עליו NGINX כ-Reverse Proxy ל-Apache

ניתן לראות שלכל רוחב היממה(24 שעות) ניתן לראות שהזיכרון של השרת יציב, כנ"ל המעבד.   נכון לדצמבר 2017 ניתן לראות ששרת הHTTP שנמצא במגמת עלייה הוא nginx לעומת Apache שנמצא במגמת ירידה

   

Apache VS NGINX

Apache ו- Nginx הם שני שרתי האינטרנט הנפוצים ביותר בקוד פתוח בעולם. יחד הם אחראים לשרת מעל 75%(נכון לשנת 2017) מהתנועה באינטרנט. שני הפתרונות מסוגלים להתמודד עם עומסי עבודה שונים ועובדים עם תוכנות אחרות. לפני שאנו נצלול לתוך ההבדלים בין Apache ו Nginx, בואו נעיף מבט מהיר על הרקע של שני המערכות האלה והמאפיינים הכלליים שלהם.  

Apache

Apache HTTP Server נוצר על ידי רוברט ב -1995, והוא פותח תחת הניהול של Apache Software Foundation מאז 1999.שרת האינטרנט Apache היה השרת הפופולרי ביותר באינטרנט מאז 1996. בגלל הפופולריות הזו, Apache נהנית מתמיכה משולבת של פרויקטי תוכנה אחרים.Apache נבחר לעתים קרובות על ידי מנהלי שרתים עקב הגמישות שלה, כוח והתמיכה הנרחבת.  

Nginx

בשנת 2002, איגור החל לעבוד על Nginx כתשובה לבעיה C10K, אשר היה אתגר עבור שרתי אינטרנט לטפל בעשרות אלפי חיבורים בו זמנית.הגרסה הציבורית(Open Source Release) הראשונה נעשתה בשנת 2004, עמידה ביעד זה על ידי הסתמכות על ארכיטקטורה אסינכרוני מונחה אירועים. הפופולריות של nginx הגדלה מאז שחרורו בגלל השימוש הקל שלה במשאבים. nginx מצטיין בהצגת תוכן סטטי ונועד להעביר תוכן דינמי בעזרת תוכנות אחרות אשר יותר מתאימות לזה(למשל - Apache). Nginx נבחר לעתים קרובות על ידי מנהלי מערכת עבור יעילות המשאבים שלה והיענות תחת עומס.  

האם אפשר לשלב בין השניים?

אכן, אנו בMyHost מציעים אחסון אתרים אשר משלב בין שני שרתי הHTTP. אנו משתמשים בNGINX כפרוקסי הפוך(Reverse Proxy) לApache.אז לאחר עברנו על שני תוכנות שרתי הHTTP המפורסמים Nginx וApache ייתכן שזה נתן לכם מבט שונה על שניהם. המון מנהלי מערכות מוצאים ששילוב בין שני המערכות האלו ושילוב היתרונות שלהם יחד יעיל הרבה יותר מאשר שימוש רק באחד משרתי הHTTP האלו. המטרה לשותפות זו היא להציב את Nginx מול Apache בתור פרוקסי הפוך. זה יאפשר Nginx כדי לטפל בכל הבקשות מלקוחות. זה מנצל את מהירות העיבוד המהיר של Nginx ויכולת להתמודד עם מספר גדול של חיבורים בו זמנית. עבור תוכן סטטי, אשר Nginx מצטיין בו, הקבצים האלו יוגשו במהירות ישירות לגולש. אבל עבור תוכן דינמי, למשל קבצי PHP יהיה פרוסקי שיעביר את הבקשה ל-Apache, אשר לאחר מכן ניתן לעבד את התוצאות ולהחזיר את הדף באופן מהיר ויסודי. שילוב שני שרתי הHTTP האלו הוא פתרון לאנשים רבים משום שהיא מאפשרת Nginx לתפקד כמכונת מיון. הוא יטפל בכל הבקשות שהוא יכול להעביר על אלה שאין לו יכולת. עקב כך כמות הבקשות לשרת הApache מצטמצם ועדיין אנו נהנים מביצועים מהירים וחיסכון במשאבים.  

מסקנות

השווינו בין שני המערכות המוכרות NGINX וApache הבנו שלכל אחד יש את היתרונות והחסרונות שלהם.והגענו למסקנה שעדיף לשלב בין השניים על מנת להוריד את המגרעות אחד של השני ולספק יתרון מובהר.אנו בMyHost מציעים אחסון אתרים אשר משלב בין השניים(NGINX as Reverse Proxy to Apache) אשר מבטיח מקסימום מהירות לאתרים של לקוחותינו תוך כדי גמישות.