הקדמה
Nginx הוא שרת אינטרנט חינמי ופתוח המשמש לאירוח של אתרי אינטרנט ויישומים בכל גדלים. התוכנה מכונה על ידי נפילת השפעה נמוכה על משאבי זיכרון, קידוח גבוה וארכיטקטורה מודולרית, המבוססת על אירועים אשר יכולה לספק ביצועים מאובטחים וצפויים. למעשה, Nginx עובד כשרת אינטרנט, מאזן עומס, מטמון HTTP ופרוקסי הפוך.
במדריך זה, תתקין את Nginx בשרת Debian 10 שלך.
דרישות קדם
לפני שתתחיל במדריך זה, עליך להגדיר משתמש רגיל, לא רוט עם הרשאות sudo בשרת שלך. עליך גם להגדיר חומת אש פעילה. תוכל ללמוד איך לעשות זאת על ידי מעקב אחר המדריך שלנו להתקנת השרת הראשונית עבור Debian 10.
שלב 1 – התקנת Nginx
Nginx זמין במאגרי התוכנה המובנים של Debian, מה שמאפשר להתקין אותו מכלי ניהול חבילות קונבנציונליים.
ראשית עדכן את אינדקס החבילות המקומי שלך כדי לשקף את השינויים העדכניים ביותר מהמקור:
אז, התקן את החבילה nginx
:
אשרד את ההתקנה, הזן Y
, ולאחר מכן לחץ על Enter
כדי להמשיך. apt
יתקין אז את Nginx וכל התלויות הדרושות לשרת שלך.
שלב 2 – התאמת הגנת הגישה
לפני בדיקת Nginx, חייבים לשנות את הגדרות הגישה לגישה מחוץ לשרת ליציאות האינטרנט הברירת מחדל. בהנחה שעקבת אחר הוראות הקדמה, עליך להגדיר חומת אש UFW כדי להגביל את הגישה לשרת שלך.
במהלך ההתקנה, Nginx נרשם עם UFW כדי לספק כמה פרופילי אפליקציות שיכולים לשמש להפעלה או להשבתת גישה ל-Nginx דרך הגישה לשרת.
רשום את פרופילי האפליקציות ufw
על ידי הקלדה:
תקבל רשימה של פרופילי האפליקציות:
OutputAvailable applications:
...
Nginx Full
Nginx HTTP
Nginx HTTPS
...
כפי שניתן לראות, קיימים שלושה פרופילים זמינים עבור Nginx:
- Nginx מלא: פרופיל זה פותח את היציאות
80
(טרפיק רגיל ולא מוצפן) ו-443
(טרפיק מוצפן של TLS/SSL) - Nginx HTTP: פרופיל זה פותח רק את היציאה
80
(טרפיק רגיל ולא מוצפן) - Nginx HTTPS: פרופיל זה פותח רק את הפתח
443
(תעבורת מוצפנת TLS/SSL)
מומלץ להפעיל את הפרופיל ההגבלה ביותר שעדיין יאפשר את התעבורה שהגדרת. מאחר שלא הגדרת עדיין TLS/SSL עבור השרת שלך במדריך זה, יהיה עליך לאפשר רק תעבורת HTTP בפתח 80
.
באפשרותך להפעיל זאת על ידי קליטת:
ניתן לוודא את השינוי על ידי הקלדה:
מה שיתקבל הוא התעבורה של HTTP המותרת בפלט:
OutputStatus: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
Nginx HTTP ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
Nginx HTTP (v6) ALLOW Anywhere (v6)
שלב 3 – בדיקת שרת האינטרנט שלך
בסופו של תהליך ההתקנה, Debian 10 מפעילה את Nginx. שרת האינטרנט כבר צריך להיות פועל.
ניתן לבדוק במערכת ההתחלה של systemd כדי לוודא שהשירות רץ על ידי הקלדה:
Output● nginx.service - A high performance web server and a reverse proxy server
Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
Active: active (running) since Tue 2022-06-28 18:42:58 UTC; 49s ago
Docs: man:nginx(8)
Main PID: 2729 (nginx)
Tasks: 2 (limit: 1167)
Memory: 7.2M
CGroup: /system.slice/nginx.service
├─2729 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
└─2730 nginx: worker process
הפלט מגלה שהשירות התחיל בהצלחה. עם זאת, הדרך הטובה ביותר לבדוק זאת היא לבקש באופן ממשי עמוד מ-Nginx.
ניתן לגשת לעמוד הבית הדיפולטי של Nginx כדי לוודא שהתוכנה פועלת כראוי על ידי ניווט לכתובת ה-IP של השרת שלך. אם אינך מכיר את כתובת ה-IP של השרת שלך, ניתן להקליד זאת בפקודת הפקודות של השרת שלך:
תקבל מספר שורות חזרה. ניתן לנסות כל אחת בדפדפן האינטרנט שלך כדי לראות האם הן עובדות.
כאשר יש לך את כתובת ה-IP של השרת שלך, הזן אותה לסרגל הכתובות של הדפדפן שלך:
http://your_server_ip
עמוד הנחיה ברירת המחדל של Nginx צריך להופיע בדפדפן האינטרנט שלך:
עמוד זה כלול עם Nginx כדי להראות לך שהשרת פועל כראוי.
שלב 4 – ניהול תהליך ה-Nginx
עכשיו שיש לך את שרת האינטרנט שלך פועל, אתה יכול לבדוק כמה פקודות ניהול בסיסיות.
כדי לעצור את שרת האינטרנט שלך, הקלד:
כדי להתחיל את שרת האינטרנט כאשר הוא עצור, הקלד:
כדי לעצור ולאחר מכן להתחיל מחדש את השירות, הקלד:
אם אתה עושה שינויים בהגדרות, Nginx יכול לטעון מחדש בלי להפסיק את החיבורים. כדי לעשות זאת, הקלד:
ברירת המחדל, Nginx מוגדר להתחיל באופן אוטומטי כאשר השרת מאתחל. אם זה לא מה שאתה רוצה, אתה יכול לנטרל את ההתנהגות הזו על ידי הקלדה:
כדי להפעיל מחדש את השירות להתחלתו באופן אוטומטי באופן מחדש, אתה יכול להקליד:
שלב 5 – הגדרת בלוקי שרת (אופציונלי)
כאשר משתמשים בשרת האינטרנט Nginx, בלוקי השרת (דומים למארחים וירטואליים באפאצ'י) ניתן להשתמש בהם כדי לאגוד את פרטי התצורה ולארח יותר מדומיין אחד על שרת אחד. בפקודות הבאות, החלפו את your_domain
בשם הדומיין האישי שלכם. כדי ללמוד עוד על הגדרת שם דומיין עם DigitalOcean, ראו את הקדמה ל-DNS של DigitalOcean.
Nginx ב- Debian 10 מכיל ברירת מחדל של בלוק שרת אחד שמוגדר לספק מסמכים מתוך ספרייה ב- /var/www/html
. בעוד זה עובד טוב עבור אתר יחיד, זה יכול להיות לא ניתן לניהול אם אתה מארח כמה אתרים. במקום לשנות את /var/www/html
, צרו מבנה ספריות בתוך /var/www
עבור האתר your_domain
, והשאירו את /var/www/html
במקום כברירת המחדל לשירות אם בקשת לקוח לא תואמת אתרים אחרים.
צור את הספרייה עבור your_domain
כך, בשימוש בדגל -p
כדי ליצור ספריות אב:
לאחר מכן, הקצו את הבעלות על הספרייה עם משתנה הסביבה $USER
, אשר צריך להפנות למשתמש המערכת הנוכחי שלך:
ההרשאות של שורש האתר שלך צריכות להיות נכונות אם לא שינית את ערך ה- umask
שלך, אך תוכל לוודא זאת על ידי הקלדת:
לאחר מכן, צור דף דוגמה index.html
באמצעות nano
או העורך הטקסט שאתה מעדיף:
בתוך זה, הוסף את ה-HTML הדוגמא הבא:
<html>
<head>
<title>Welcome to your_domain</title>
</head>
<body>
<h1>Success! Your Nginx server is successfully configured for <em>your_domain</em>. </h1>
<p>This is a sample page.</p>
</body>
</html>
שמור וסגור את הקובץ כאשר אתה מסיים. ב־nano
אתה יכול לעשות זאת על ידי לחיצה על CTRL + X
, אז Y
, ואז ENTER
.
כדי ש־Nginx ישרת תוכן זה, עליך ליצור בלוק שרת עם ההנחיות הנכונות שמפנות לשורש האינטרנט המותאם אישית שלך. במקום לשנות את קובץ התצורה הברירת מחדל ישירות, צור קובץ חדש במיקום /etc/nginx/sites-available/your_domain
:
הוסף את בלוק התצורה הבא, הדומה לברירת המחדל, אך מעודכן עבור הספרייה ושם הדומיין החדש שלך:
server {
listen 80;
listen [::]:80;
root /var/www/your_domain/html;
index index.html index.htm index.nginx-debian.html;
server_name your_domain www.your_domain;
location / {
try_files $uri $uri/ =404;
}
}
שים לב לתצורת ה־root
המעודכנת לספרייה החדשה שלך ול־server_name
לשם הדומיין שלך. זכור להחליף את your_domain
בשם הדומיין האמיתי שלך.
בשלב הבא, הפעל את בלוק השרת הזה על ידי יצירת קישור סמלי לקובץ התצורה המותאם אישית שלך בתוך התיקייה sites-enabled
, שבה Nginx קורא במהלך ההתחלה:
השרת שלך כעת מכיל שני בלוקי שרת מופעלים ומוגדרים להגיב לבקשות על פי הנחיותיהם של listen
ו־server_name
(ניתן לקרוא עוד על איך ש־Nginx מעבדת את ההנחיות הללו כאן):
your_domain
: יגיב לבקשות עבורyour_domain
ו־www.your_domain
.default
: יגיב לכל בקשות בפורט80
שאינן תואמות את שני הבלוקים האחרים.
כדי למנוע בעיה אפשרית של זיכרון דלי הגיבוב שעשוי להתגלות מהוספת שמות שרת נוספים לתצורה שלך, עליך להתאים את ערך היחיד ב־/etc/nginx/nginx.conf
. פתח את הקובץ:
מצא את ההכוונה server_names_hash_bucket_size
והסר את סמל ה־#
כדי לבטל את השורה:
...
http {
...
server_names_hash_bucket_size 64;
...
}
...
שמור וסגור את הקובץ כאשר אתה מסיים.
באשר למבחן כדי לוודא שאין שגיאות תחביר בכל אחד מקבצי ה־Nginx שלך:
אם אין כל תקלות, הפלט הבא יוצג:
Outputnginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
כאשר הבחין בתצורה שלך עובר, הפעל מחדש את ה־Nginx כדי להפעיל את השינויים שלך:
כעת יש ל־Nginx לשרת את שם הדומי שלך. ניתן לבדוק זאת על ידי ניווט אל http://your_domain
. יש להציג כאן את ה־HTML המותאם אישית שיצרת בתיקיית /var/www/your_domain/html/index.html
:
שלב 6 – התנסות בקבצים ובספריות חשובים של Nginx
עכשיו שאתה מכיר איך לנהל את שירות ה־Nginx עצמו, ניתן לך להתנסות במספר ספריות וקבצים חשובים.
תוכן
/var/www/html
: התוכן האינטרנטי הממוקם בכתובת זו, שברירת מחדל מורכב מדף Nginx הברירתי שראית לאחרונה, מוצף מהתיקייה/var/www/html
. ניתן לשנות זאת על ידי שינוי קבצי התצורה של Nginx.
הגדרת השרת
/etc/nginx
: ספריית התצורה של Nginx. כל קבצי התצורה של Nginx ממוקמים כאן./etc/nginx/nginx.conf
: קובץ התצורה הראשי של Nginx. ניתן לשנות קבצים זהים כדי לבצע שינויים בהגדרה הגלובלית של Nginx./etc/nginx/sites-available/
: התיקייה בה ניתן לאחסן בלוקי שרת מקובץ לכל אתר. Nginx לא תשתמש בקבצי התצורה שנמצאים בתיקייה זו אלא אם כן הם מקושרים לתיקייתsites-enabled
. כלל ההגדרות של בלוקי השרת נעשות בדרך כלל בתיקייה זו, ואז מופעלות על ידי קישור לתיקייה השניה./etc/nginx/sites-enabled/
: התיקייה בה מאוחסנים בלוקי שרת מופעלים לפי אתר. כלל הם נוצרים על ידי קישור לקבצי התצורה שנמצאים בתיקייתsites-available
./etc/nginx/snippets
: ספריית זו מכילה קטעי הגדרה שניתן לכלול במקומות אחרים בהגדרת Nginx. קטעי הגדרה שניתן לחזור עליהם פוטנציאלית הם מועמדים טובים לפירוק מחדש לקטעי קוד.
יומני שרת
/var/log/nginx/access.log
: כל בקשה לשרת האינטרנט שלך מתעדכנת בקובץ יומן זה אלא אם הוגדר כך ב-Nginx./var/log/nginx/error.log
: כל שגיאה ב-Nginx תירשם ביומן זה.
מסקנה
עכשיו שהתקנת את השרת האינטרנט שלך, יש לך אפשרויות רבות לסוגי התוכן שניתן לשרת ולטכנולוגיות שניתן להשתמש בהן כדי ליצור חוויה עשירה יותר עבור המשתמשים שלך.
Source:
https://www.digitalocean.com/community/tutorials/how-to-install-nginx-on-debian-10