הקדמה
אפאצ'י הוא אחד משרתי האינטרנט הפופולריים ביותר. הוא משמש כשרת ליישומי רשת על יותר מחצי מהאתרים הפעילים ברשת. אף על פי שישנם מספר רב של שרתי רשת תקינים שיכולים לשרת את התוכן שלך, חשוב להבין איך אפאצ'י פועל בשל נפוצותו.
מאמר זה יבחן כמה קבצי התצורה הכלליים והאפשרויות שניתן לשלוט בהן בתוכם. המאמר יעקוב אחר סדר המבנה של קבצי אפאצ'י באובונטו/דביאן, שהוא שונה מאופן בניית המסדר של קבצי התצורה בהפצות אחרות.
דרישות מוקדמות
אם אתה משתמש באובונטו גרסה 16.04 או מטה, אנו ממליצים לך לשדרג לגרסה מתקדמת יותר מאשר Ubuntu מפסיקה לספק תמיכה לגרסאות אלו. מאגר מדריכים אלו יסייעו לך בשדרוג הגרסה של Ubuntu שלך.
-
שרת הרצון Ubuntu, יחד עם משתמש לא-רוט עם הרשאות
sudo
וצרות אש פעילה. להנחיות כיצד להגדיר את אלו, אנא בחר את ההפצה שלך מתוך רשימה זו ועקוב אחר מדריכנו להתקנת השרת הראשונית שלנו. -
לפני שתתחילו לחקור את התצורות של Apache, עליכם להתקין את Apache על השרת שלכם. תוכלו ללמוד איך לעשות זאת על ידי מעקב אחרי המדריך שלנו "כיצד להתקין את שרת האינטרנט של Apache על Ubuntu" במדריך שלנו לגרסאות 22.04 / 20.04 / 18.04 או במדריך "כיצד להתקין את שרת האינטרנט של Apache על Debian 10".
5 צעדים להגדרת שרת אפאצ'ה על Ubuntu
- מבנה הקבצים של Apache
- חקירת קובץ ההגדרות של Apache2.conf
- הגדרות גלובליות של Apache
- הגדרת קובץ מארח וירטואלי של Apache
- הפעלת אתרים ומודולים
שלב 1: מבנה הקבצים של Apache
/etc/apache2
הוא התיקייה בה מאוחסנים קבצי התצורה הראשיים של Apache. בביצוע הפקודה הבאה יוצגו כל הקבצים בתוך התיקייה הזו:
Outputenvars sites-available . apache2.conf .. sites-enabled mods-available ports.conf magic mods-enabled conf-enabled conf-available
ישנם מספר קבצי טקסט ותת-תיקיות בתוך תיקייה זו. הנה מקומות שימושיים להכרתכם:
apache2.conf
: זהו קובץ התצורה הראשי של השרת. ניתן להגדיר כמעט את כל ההגדרות מתוך קובץ זה, אם כי מומלץ להשתמש בקבצים נפרדים ומיועדים לכך לפשטות. קובץ זה יגדיר ברירות מחדל ויהיה הנקודה המרכזית שבה יקרא השרת את פרטי התצורה.ports.conf
: קובץ זה משמש לציון הפורטים שבהם ישמיעו מארחי וירטואליים. יש לוודא שקובץ זה נכון במידה ואתה מגדיר SSL.sites-available/
ו־sites-enabled/
: תיקייתsites-available
מכילה הגדרות קבצי מארח וירטואלי. הגדרות בתיקייה זו יקבעו איזו תוכן יוגש עבור אילו בקשות. פעולת זימון מתבצעת דרך קישור לתיקייתsites-enabled
, המאחסנת קבצי הגדרת מארח וירטואליים שהופעלו. כאשר Apache מתחיל או מטעין מחדש, הוא קורא את קבצי התצורה והקישורים מתוך התיקייהsites-enabled
בעת שהוא מכניס את התצורה המלאה.conf-available/
ו־conf-enabled/
: התיקיות הללו מכילות רסיסי תצורה שאינם מקושרים לקבצי התצורה של מארחים וירטואליים.mods-enabled/
ו־mods-available/
: תיקיות אלו מגדירות מודולים שניתן לטעון באופציה. התיקיות מכילות שני רכיבים: קבצים שמסתיימים ב־.load
, שמכילים קטעים שטוענים מודולים מסוימים, וקבצים שמסתיימים ב־.conf
, שמאחסנים את התצורות של מודולים אלו.
הגדרת Apache אינה קורה בקובץ מונולית, אלא בעיצוב מודולרי שבו ניתן להוסיף ולשנות קבצים כפי הצורך.
שלב 2: חקירת קובץ Apache2.conf
פרטי התצורה הראשיים לשרת Apache שלך מאוחסנים בקובץ /etc/apache2/apache2.conf
.
קובץ זה מחולק לשלושה סעיפים עיקריים:
- הגדרת התהליך הגלובלי של שרת Apache
- הגדרת השרת הברירת מחדל
- הגדרת מארחים וירטואליים.
פתח את הקובץ עם עורך הטקסט שאתה מעדיף. הדוגמה הבאה משתמשת ב־nano
:
באובונטו ובדביאן, קובץ זה משמש להגדרות גלובליות. ההגדרה של השרת הברירת מחדל והמארחים הווירטואליים מתוארכים באמצעות קישור להכללה (Include
).
ההכללה (Include
) מאפשרת ל־Apache לקרוא קבצי הגדרה נוספים לתוך הקובץ הנוכחי במיקום בו מופיע ההצהרה. התוצאה היא ש־Apache יוצר קובץ הגדרה כולל באופן דינמי בעת הפעלת המערכת.
נמצאים בקובץ זה מספר הצהרות שונות של Include
ו-IncludeOptional
. ההוראות הללו טוענות הגדרות מודול, את המסמך ports.conf
, קבצי התצורה הספציפיים בתיקיית conf-enabled/
, והגדרות מארח וירטואליות בתיקיית sites-enabled/
:
…
IncludeOptional mods-enabled/*.load
IncludeOptional mods-enabled/*.conf
…
Include ports.conf
…
IncludeOptional conf-enabled/*.conf
…
IncludeOptional sites-enabled/*.conf
שלב 3: הגדרת הגדרות גלובליות של Apache
ישנן אפשרויות שאולי תרצה לשנות בהגדרות הגלובליות:
Timeout
כברירת מחדל, הפרמטר הזה מוגדר ל-300
. זה אומר שהשרת יש לו מקסימום של 300 שניות למילוי כל בקשה.
ניתן להוריד בטוח את הערך הזה למשהו בין 30
ל-60
שניות.
KeepAlive
האפשרות הזו, אם הוגדרת ל־On
, תאפשר לכל חיבור להישאר פתוח כדי לטפל בבקשות מרובות מאותו לקוח.
אם זה מוגדר ל־Off
, כל בקשה תצטרך להקים חיבור חדש, מה שיכול לגרום להוצאת משאבים רבה, בהתאם להגדרה ולמצב התעבורה שלך.
MaxKeepAliveRequests
מנהל את כמות הבקשות הנפרדות שכל חיבור יטפל בהן לפני שיימות. שמירה על מספר זה בגובהו יאפשר לאפאצ'י לספק תוכן לכל לקוח באופן יעיל יותר.
הגדרת ברירת המחדל היא ל־100
. הגדרת ערך זה ל־0
תאפשר לאפאצ'י לשרת כמות לא מוגבלת של בקשות לכל חיבור.
KeepAliveTimeout
הגדרה זו קובעת כמה זמן להמתין לבקשה הבאה לאחר הסיום של האחרונה. אם מתקיים מפסק הזמן המרבי, אז החיבור ימות.
זה אומר שבפעם הבאה שתתבקש תוכן, השרת יקים חיבור חדש כדי לטפל בבקשה לתוכן שמהווה את העמוד שהלקוח מבקר בו. ברירת המחדל מוגדרת ל־5
.
לאחר בדיקת תוכן קובץ ההגדרות הזה, ניתן לצאת ממנו על ידי לחיצה על CTRL+X
.
רכיבי עיבוד מרובי תהליך
A Multi-Processing Module (MPM) extends Apache’s modular design. MPMs are responsible for listening, directing, and handling different network requests. You can cross-reference which section your Apache installation was compiled in with using the following command:
OutputCompiled in modules:
core.c
mod_so.c
mod_watchdog.c
http_core.c
mod_log_config.c
mod_logio.c
mod_version.c
mod_unixd.c
ניתן לבדוק את סוג ה-MPM בשרת שלך עם הפקודה a2query -M
:
Outputevent
הפלט מגלה כי ה-MPM שבשימוש בשרת זה הוא event
. ההתקנה שלך עשויה לכלול מספר רב של MPMים לבחירה, אך רק אחד יכול להיות נבחר.
שלב 4: עדכון קובץ מארח וירטואלי של אפאצ'י
ההצהרה הווירטואלית הברירת מחדל ניתן למצוא בקובץ בשם 000-default.conf
בתוך התיקייה sites-available/
. ניתן ללמוד על הפורמט הכללי של קובץ מארח וירטואלי על ידי בדיקה של קובץ זה.
פתח את הקובץ עם הפקודה הבאה:
<VirtualHost *:80>
…
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
…
ErrorLog ${APACHE LOG DIR}/error.log
CustomLog ${APACHE LOG DIR}/access.log combined
…
המארח הווירטואלי ברירת המחדל מוגדר לטפל בכל בקשה בפורט 80
, הפורט התקני של HTTP. זה מוגדר בכותרת ההצהרה שבה כתוב *:80
, שמשמעותו פורט 80
על כל ממשק.
אך, זה אינו אומר שהוא בהכרח יטפל בכל בקשה לשרת על פורט זה. אפאצ'י משתמש בהגדרת המארח הווירטואלי המדוייקת ביותר שתואמת לבקשה. אם יש הגדרה יותר מדוייקת, היא עשויה לחלוף על פני ההגדרה הזו. לאחר בדיקת הקובץ, ניתן לצאת ממנו על ידי לחיצה על CTRL+X
.
תצורת מארח וירטואלי של Apache
האפשרויות הבאות מוגדרות בתוך ההגדרה של המארח הוירטואלי מחוץ לכל הצהרה משנית ברמה נמוכה יותר. הן חלות על כל המארח הוירטואלי כולו.
להתחיל, פתח את קובץ security.conf
בתוך התיקייה conf-available/
:
הקובץ מכיל את ההוראה Server Signature
, שמאפשרת לך לציין כתובת דואר אלקטרוני ליצירת קשר שצריך להשתמש בה כאשר יש בעיות בשרת. ניתן לשנות את האפשרות המוגדרת מראש מOn
לEMail
כדי לחשוף את כתובת הדואר האלקטרוני של מנהל השרת. וודא שאתה מוכן לקבל את הדואר אם אתה משנה הגדרה זו:
…
ServerSignature EMail
…
צא מהקובץ על ידי לחיצה עלCTRL+X
. לאחר עריכת קובץ התצורה, יתקיים פרומט לאישור השינויים. לחץ Y
כדי לשמור את השינויים בקובץ שלך או לחץ N
כדי לבטל אותם.
בתוך קובץ המארח הוירטואלי שלך, תוכל להוסיף הוראת ServerName
שמציינת את שם הדומיין או כתובת ה-IP שזה הבקשה צריכה לטפל בה. זו האפשרות שתוסיף ספציפיות למארח הוירטואלי, מאפשרת לו לדרוס את ההגדרה המוגדרת מראש אם היא תואמת את ערך ה-ServerName
.
הרץ את הפקודה הבאה כדי לפתוח את קובץ המארח הוירטואלי שלך, וודא שאתה מחליף את המשתנה your_domain
עם שם הדומיין האמיתי שלך:
הוסף your_domain
להנחיית ServerName
:
…
ServerName your_domain
…
באופן דומה, ניתן גם להגדיר שהשרת הווירטואלי יחול על יותר משם אחד באמצעות ההנחיה ServerAlias
. פעולה זו מספקת נתיבים אלטרנטיביים לגישה לאותם תוכן. שימוש טוב למקרה זה הוא הוספת הדומיין אותו, מוקדם ב־www
:
…
ServerAlias www.your_domain.com
…
ההנחייה DocumentRoot
קובעת איפה התוכן שמבוקש לשרת הווירטואלי יימצא. ב־Ubuntu, השרת הווירטואלי המוגדר כברירת מחדל מוגדר כך שישרת את התוכן מתוך התיקייה /var/www/
:
…
DocumentRoot /var/www/your_domain/public_html
…
הגדרות תיקיות
בתוך ההגדרה של השרת הווירטואלי, יש הגדרות לכיצד השרת מטפל בתיקיות שונות בתוך מערכת הקבצים. אפאצ'י יחליף את כל ההוראות הללו מהקצרה לארוכה, כך שקיימת שוב סיכוי לדרוס אפשרויות קודמות.
פתח את קובץ ה־apache2.conf
באמצעות הפקודה הבאה:
…
<Directory />
Options FollowSymLinks
AllowOverride None
Require all denied
</Directory>
<Directory /usr/share>
AllowOverride None
Require all granted
</Directory>
<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
…
ההגדרה הראשונה של התיקיות מיישם כללים עבור ה־/
, או root, תיקייה. זה יספק את התצורה הבסיסית לשרת הווירטואלי שלך, מכיוון שהוא יחול על כל הקבצים שיושרתו במערכת הקבצים. שים לב לאפשרויות התצורה של התיקייה, יחד עם תגובות מועילות, המכילות בתוכן קובץ זה. התצורה ברירת המחדל מונעת גישה לכל התוכן אלא אם כן צוין אחרת בהגדרות התיקיות המתקינות.
ההוראה Require
יכולה להגביל או לפתוח גישה למשאבים שונים בתוך השרת שלך.
ההוראה AllowOverride
משמשת להחלטה אם קובץ .htaccess
יכול לדרוס הגדרות אם הוא מונח בתיקיית התוכן. זה אינו מורשה כברירת מחדל, אך יכול להיות שימושי לאפשר במגוון של מקרים.
לאחר בדיקת תוכן קובץ זה, ניתן לצאת ממנו על ידי לחיצה על CTRL+X
.
הצהרות Alias ו-ScriptAlias
הגדרות תיקיות לעיתים קרובות מופלגות באמצעות הוראות Alias
או ScriptAlias
.
פתח את קובץ התצורה של המארח הווירטואלי שלך עם הפקודה הזו והחליף את המשתנה your_domain
בשם הדומיין שלך:
ההוראה Alias
משייכת נתיב URL לנתיב תיקייה. לדוגמה, במארח וירטואלי שמטפל בבקשות אל your_domain
הבא יאפשר גישה לתוכן בתוך /usr/local/apache/content/
כאשר מנווטים אל your_domain.com/content/
:
Alias “/content/” “/usr/local/apache/content/”
ההוראה ScriptAlias
פועלת באותו אופן, אך משמשת להגדרת תיקיות שיש בהן רכיבים ניתנים לביצוע:
ScriptAlias "/cgi-bin/" "/usr/local/apache2/cgi-bin/"
זכור להגדיר את התיקייה עם ההרשאות לגישה כפי שדובר בסעיף הקודם. לאחר השלמת העריכות בקובץ, צא מהקובץ על ידי לחיצה על CTRL+X
. אם ביצעת שינויים לקובץ זה, לחץ על Y
כדי לשמור את השינויים בקובץ שלך או לחץ על N
כדי לעזוב את הקובץ כפי שהוא היה לפני כל שינויים בהגדרה.
שלב 5: הפעלת אתרים ומודולים
לאחר שיש לך קובץ מארח וירטואלי שעונה על הדרישות שלך, תוכל להשתמש בכלים הכלולים עם Apache כדי להעביר אותו לאתרים פעילים.
כדי ליצור קישור סימבולי בתיקיית sites-enabled
לקובץ קיים בתיקיית sites-available
, תפעיל את הפקודה הבאה. וודא שתחליף את your_domain
בשם קובץ התצורה של המארח הוירטואלי שלך:
לאחר הפעלת אתר, הפעל את הפקודה הבאה כדי לספר ל-Apache לטעון מחדש את קבצי התצורה שלו, מאפשר לשינוי להתפשט:
יש גם פקודת שותף לנטרול אתר וירטואלי. היא פועלת על ידי הסרת הקישור הסימבולי מהתיקייה sites-enabled
. לדוגמה, עם האתר הוירטואלי שלך מאופשר, תוכל לנטרול את האתר הברירת מחדל 000-default
.
ניתן להפעיל או לנטרל מודולים באמצעות הפקודות a2enmod
ו־a2dismod
בהתאמה. הן עובדות באופן דומה לגרסאות a2ensite
ו־a2dissite
של הפקודות אלו. לדוגמה, כדי להפעיל את מודול ה־info
, ניתן להשתמש בפקודה הבאה:
באופן דומה, ניתן לנטרל מודול באמצעות הפקודה a2dismod
:
יש לזכור לאתחל את Apache לאחר שינוי קבצי התצורה והפעלת או נטרול מודולים.
מסקנה
Apache היא מערכת גמישה ומודולרית מאוד, לכן דרישות ההגדרה יהיו שונות לפי הקבוצה שלך.
לאחר בחינת כמה מקרי השימוש הכלליים לעיל, תמיד תוכל להבין באופן טוב למה הקבצים הראשיים להגדרה משמשים וכיצד הם פועלים יחד. אם נדרש לך להכיר אפשרויות הגדרה מסוימות, הקבצים המסופקים כתובים היטב ו־Apache מספקת תיעוד מצוין. במקווה שכעת הקבצים להגדרה לא יראו כה מרשימים ותרגישו נוח יותר לנסות ולשנות אותם לפי הצורך האישי שלכם.