החיסרון ב-Apache, שהוא פותח פרוסס לכל בקשה(בהתחלה מרזרבה ואז מפעיל פרוססים נוספים), וכל פרוסס כזה דורש זכרון ובשלב מסויים מכביד על המערכת.
לעומת זאת, NGINX מטפל בבקשות בצורה שונה, ופרוסס אחד של NGINX יכול לטפל בכמה בקשות במקביל (בד"כ מגדירים פרוסס לכל ליבה).
אני אתן לך דוגמא להתקנה שביצעתי, שרת שמטפל בהמון בקשות לקבצים סטטים, עם קפיצות תעבורה מטורפות (מ-10 אמביט ל-100 אמביט בשנייה), עבד עם APACHE וה-LOAD AVARAGE עמד על 30 באופן קבוע, זמן הטעינה של קובץ היה בין שנייה לשתיים.
לאחר התקנה של Nginx, ה-Load avarage לא עובר את 1.5, זמן הטעינה לתמונה ירד לפחות משנייה, והלקוח הפסיק לקבל מיילים מעצבנים ממערכת הניתור.
אבל nginx הוא לא הפתרון היחידי, יש גם את lighttpd, squid, varnish, ועוד.
כש-Apache עובד עם Nginx אז בעל האתר יכול להמשיך לפתח את האתר כרגיל (חוקי HTACCESS לדוגמא), ו-NGINX מעביר ל-Apache רק את הבקשות לתוכן הדינאמי (הגולש לא מדבר עם Apache).
ניקח עמוד סטנדרטי, מה קורה בפועל?
העמוד הראשי index.php נטען דרך Apache.
העמוד מפנה לעוד X תמונות, Y קבצי CSS ו-Z קבצי JS - כולם נטענים מ-Nginx.
במקרה של גולש אחד, לא יהיה הבדל משמעותי בביצועים/צריכת משאבים.
תכפיל את הגולש הזה ב-100, ואז אתה בוחן את היעילות של המערכת.
__________________
אבי
|