יום ראשון, 1 בפברואר 2009

עם איזה שרת Web כדאי לעבוד?

בתחילת דרכו של Rails היה מומלץ להריץ בסביבה ה- Production עם Mongrel, והקונפיגורציה היתה קצת מורכבת (באופן יחסי כמובן).

אבל לאחרונה יצא לי (שוב) להתקין שרת Production, ופשוט קשה היה שלא להתפעל כמה הדבר פשוט. אני משתמש בשרת הווב הנפוץ ביותר בעולם - אפאצ'י (או בעברית :) Apache). למה Apache? כי בכל זאת כ-50% מהעולם עובד עם אפאצ'י (מקור). זהו אחד שרתי הווב הוותיקים והאמינים בעולם.

sudo apt-get install apache2 - והאפאצ'י כבר מותקן (מערכות debian / ubuntu).
היופי של Apache הוא שאפשר להתקין עליו (כמעט) איזה מודולים שרוצים: צריך שיעבוד עם PHP - יש את mod_php, תמיכה ב-SSL, ב-perl, ב-rewrite, ב-Caching? הכל יש. כל מודול שרוצים, פקודה אחת וה-Apache תומך. הכל כמובן בקוד פתוח - חינם.

ומדוע כל ההקדמה הזו? כי לאחרונה חברת Phusion הוציאה את Passenger (או mod_rails). זהו מודול עבור Apache, אשר תומך בריילס. התקנה מאוד פשוטה (תראו בעצמכם), ויש לי שרת Production, שתומך ב-Rails!
שרת אחד יכול להריץ עבורי גם PHP, גם Rails וגם perl, למשל.
היתרון המשמעותי בעיניי, הוא שכל מה שתמך לי עד היום ב-Apache, ועשה אותו לשרת הפופולארי ביותר בעולם, יעבוד גם כאן. כל המודולים, והאופציות, אופן הקונפיגורציה, reload ו-restart, הכל מוכר וידוע. רוב העולם עובד עם אפאצ'י, ועכשיו גם rails מצטרפים.

5 comments:

  1. האם יצא לך להשוות נתוני ביצועיים של Rails מול PHP על Apache?
    השבמחק
  2. הי שמעון, לא יצא לי להשוות, אבל אני חושב ש-PHP יותר מהיר.

    תן קצת זמן, והם ישפרו עוד את הביצועים.
    אגב, היופי ב-opensource זה שאתה תמיד יכול להוסיף שרתים בעלות קטנה יחסית.

    למשל אפשר לראות בלינק למטה, שהצוות המפתח החליט לעשות את ריילס יותר יעיל:
    http://rails.uservoice.com/pages/rails3
    /suggestions/98494-improve-performance
    השבמחק
  3. אי אפשר לעשות השוואה כזו.
    באפליקציות מסויימות, מנגנון caching שמערב את אפאצ'י בגישה לקבצים, הופך את האפליקצית ריילס שלך לכמעט סטטית עבור המשתמש באחוז גבוה מאוד מהמקרים.
    זה שאלה של תשתית... עקרונית php יותר מהירה מרובי 1.8 אבל הגרסא הקרובה של רובי 1.9 אמורה לשנות את זה.
    השבמחק
  4. ההשוואה שאני רוצה לעשות היא גם לא נכונה רעיונית כי ריילס זה פריימוורק וphp זו שפה. מה שאני מחפש זה יותר קנה מידה. יש המון חוות דעת שריילס האטית, אבל אני מתקשה למצא מספרים וזה ניראה לי קצת תמוה.
    השבמחק
  5. יש כאן שני גורמים - אחד השפה, וכאן רובי 1.9 אמורה* להיות פי 2-5 יותר מהירה מרובי 1.8, ולכן כל ה-framework שרץ עליה יהיה יותר מהר.

    החלק השני זה ה-framework שאכן יש טענות שהוא צריך להיות מהיר יותר, וגם כאן יהיו שיפורים משמעותיים (ראה את הלינק בהערה הראשונה שלי).

    בכל מקרה, ריילס עדיין צעירה ומאוד פופולארית ולכן הביצועים ימשיכו להשתפר. אל תשכח שה-mod_rails שכתבתי עליו קיים פחות משנה!

    *כל ההשוואה הזו בעייתית, אבל בגדול 1.9 יהיה הרבה יותר מהיר.
    השבמחק