מה זה Apache ולמה משתמשים בו¶
כמעט כל מפתח שנוגע בצד שרת נתקל בשם Apache בשלב כלשהו - אולי בהקמת אחסון אתר, אולי בקריאת תיעוד ישן, אולי בעבודה עם WordPress. השם הזה מגיע משרת אינטרנט שקיים כבר עשרות שנים, וממשיך להריץ חלק ניכר מהאתרים באינטרנט עד היום.
אז מה זה בעצם Apache¶
Apache HTTP Server הוא תוכנה שרצה על מחשב שרת, מאזינה לבקשות HTTP שמגיעות ממשתמשים, ומחזירה תשובה - דף HTML, קובץ תמונה, או כל תוכן אחר. זה בדיוק התפקיד הבסיסי של כל שרת אינטרנט - לקבל בקשה ולתת תשובה - אבל Apache עושה את זה עם עשרות שנות בשלות ואקוסיסטם ענק סביבו.
כשמישהו מקליד כתובת אתר בדפדפן, הבקשה מגיעה לשרת שמריץ Apache, הוא בודק איזה קובץ או תכנית מבוקשים, מריץ את הלוגיקה הנדרשת אם צריך, ושולח בחזרה את התוצאה.
ארכיטקטורת מודולים - הכוח האמיתי של Apache¶
מה שהפך את Apache לכל כך פופולרי הוא מערכת המודולים שלו. במקום שרת מונוליטי אחד שעושה הכל, Apache בנוי כליבה קטנה שאפשר להוסיף לה יכולות דרך מודולים - mod_ssl להצפנת HTTPS, mod_rewrite לשינוי כתובות URL "בזמן אמת", mod_php להרצת קוד PHP ישירות בתוך השרת. רוצים יכולת מסוימת? מפעילים את המודול שמספק אותה. לא צריכים אותה? היא פשוט לא נטענת, וחוסכת משאבים.
הגמישות הזאת היא הסיבה ש-Apache התאים את עצמו לכל כך הרבה סוגי שימוש לאורך השנים, מאתרים סטטיים פשוטים ועד מערכות מורכבות עם לוגיקה עסקית שלמה מוטמעת בשרת עצמו.
Virtual Hosts - כמה אתרים על שרת אחד¶
תכונה מרכזית נוספת היא virtual hosts, שמאפשרת להריץ כמה אתרים שונים על אותה מכונה פיזית, כשכל אחד מהם מקבל תצורה נפרדת - ספריית קבצים משלו, כללי גישה משלו, אפילו הגדרות SSL משלו. זה מה שמאפשר לספקי אחסון להריץ אלפי אתרים על מספר קטן יחסית של שרתים.
קובץ htaccess. - שליטה מקומית בתצורה¶
Apache מאפשר להגדיר כללי תצורה בקובץ מיוחד בשם htaccess. שיושב בתוך תיקיית האתר עצמה, ולא רק בקובץ ההגדרות המרכזי של השרת. זה נותן שליטה נוחה - למשל להגדיר הפניות אוטומטיות, חוקי אבטחה, או הגבלות גישה, בלי צורך בגישת מנהל למחשב כולו. זו אחת הסיבות ש-Apache כל כך נפוץ בסביבות אחסון משותפות.
Apache מול חלופות מודרניות¶
היום קיימים שרתים כמו Nginx שמתמודדים היטב עם עומסים גבוהים ומבקשים מספר עצום של חיבורים בו זמנית, ולעתים מוחלפים איתם או מוצבים לפניהם בתפקיד proxy. אבל Apache עדיין נמצא בכל מקום - הוא יציב, מתועד היטב, ויש לו קהילה ואקוסיסטם ענקיים שנבנו סביבו במשך עשרות שנים. הרבה מערכות תוכן פופולריות כמו WordPress עדיין מומלצות להרצה עליו כברירת מחדל.
למה כדאי להכיר את זה גם אם לא משתמשים בו כל יום¶
גם אם בפרויקט הנוכחי שלכם אתם עובדים עם שרת יישום מודרני בתוך Node.js או Python, סביר שבשלב כלשהו תיתקלו בשרת Apache - אולי מריץ אתר ישן, אולי כפרוקסי מול השירותים שלכם, אולי בתפקיד אחסון פשוט. להבין את העקרונות הבסיסיים שלו - virtual hosts, מודולים, קובצי תצורה - עוזר להבין גם שרתים אחרים, כי הרעיונות חוזרים על עצמם בצורה זו או אחרת בכל שרת אינטרנט.
איך לומדים את זה בפועל¶
הבנת התפקיד של שרת אינטרנט בארכיטקטורה כוללת - מול שרת יישום, מול מסד נתונים, מול פרוקסי - היא בדיוק מה שלומדים כשבונים מערכת מקצה לקצה. בקורס צד-שרת עוברים על כל השכבות האלה ומבינים איפה כל רכיב משתלב.
יש לכם שאלה על תצורת שרת ספציפית שלא הצלחתם לפתור? זה בדיוק המקום לשאול.
לסיכום¶
Apache הוא אחד הוותיקים והיציבים ביותר בעולם שרתי האינטרנט, ולמרות שיש חלופות מודרניות יותר לתרחישים מסוימים, הארכיטקטורה הגמישה שלו, מבוססת המודולים, ממשיכה להריץ חלק גדול מהאינטרנט עד היום. להכיר את העקרונות שלו זו נקודת פתיחה טובה להבין כל שרת אינטרנט אחר שתפגשו בהמשך הדרך.