איך להתקין Nginx על Debian 10

הקדמה

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

במדריך זה, תתקין את Nginx בשרת Debian 10 שלך.

דרישות קדם

לפני שתתחיל במדריך זה, עליך להגדיר משתמש רגיל, לא רוט עם הרשאות sudo בשרת שלך. עליך גם להגדיר חומת אש פעילה. תוכל ללמוד איך לעשות זאת על ידי מעקב אחר המדריך שלנו להתקנת השרת הראשונית עבור Debian 10.

שלב 1 – התקנת Nginx

Nginx זמין במאגרי התוכנה המובנים של Debian, מה שמאפשר להתקין אותו מכלי ניהול חבילות קונבנציונליים.

ראשית עדכן את אינדקס החבילות המקומי שלך כדי לשקף את השינויים העדכניים ביותר מהמקור:

  1. sudo apt update

אז, התקן את החבילה nginx:

  1. sudo apt install nginx

אשרד את ההתקנה, הזן Y, ולאחר מכן לחץ על Enter כדי להמשיך. apt יתקין אז את Nginx וכל התלויות הדרושות לשרת שלך.

שלב 2 – התאמת הגנת הגישה

לפני בדיקת Nginx, חייבים לשנות את הגדרות הגישה לגישה מחוץ לשרת ליציאות האינטרנט הברירת מחדל. בהנחה שעקבת אחר הוראות הקדמה, עליך להגדיר חומת אש UFW כדי להגביל את הגישה לשרת שלך.

במהלך ההתקנה, Nginx נרשם עם UFW כדי לספק כמה פרופילי אפליקציות שיכולים לשמש להפעלה או להשבתת גישה ל-Nginx דרך הגישה לשרת.

רשום את פרופילי האפליקציות ufw על ידי הקלדה:

  1. sudo ufw app list

תקבל רשימה של פרופילי האפליקציות:

Output
Available 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.

באפשרותך להפעיל זאת על ידי קליטת:

  1. sudo ufw allow 'Nginx HTTP'

ניתן לוודא את השינוי על ידי הקלדה:

  1. sudo ufw status

מה שיתקבל הוא התעבורה של HTTP המותרת בפלט:

Output
Status: 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 כדי לוודא שהשירות רץ על ידי הקלדה:

  1. systemctl status nginx
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 של השרת שלך, ניתן להקליד זאת בפקודת הפקודות של השרת שלך:

  1. ip addr show eth0 | grep inet | awk '{ print $2; }' | sed 's/\/.*$//'

תקבל מספר שורות חזרה. ניתן לנסות כל אחת בדפדפן האינטרנט שלך כדי לראות האם הן עובדות.

כאשר יש לך את כתובת ה-IP של השרת שלך, הזן אותה לסרגל הכתובות של הדפדפן שלך:

http://your_server_ip

עמוד הנחיה ברירת המחדל של Nginx צריך להופיע בדפדפן האינטרנט שלך:

עמוד זה כלול עם Nginx כדי להראות לך שהשרת פועל כראוי.

שלב 4 – ניהול תהליך ה-Nginx

עכשיו שיש לך את שרת האינטרנט שלך פועל, אתה יכול לבדוק כמה פקודות ניהול בסיסיות.

כדי לעצור את שרת האינטרנט שלך, הקלד:

  1. sudo systemctl stop nginx

כדי להתחיל את שרת האינטרנט כאשר הוא עצור, הקלד:

  1. sudo systemctl start nginx

כדי לעצור ולאחר מכן להתחיל מחדש את השירות, הקלד:

  1. sudo systemctl restart nginx

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

  1. sudo systemctl reload nginx

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

  1. sudo systemctl disable nginx

כדי להפעיל מחדש את השירות להתחלתו באופן אוטומטי באופן מחדש, אתה יכול להקליד:

  1. sudo systemctl enable 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 כדי ליצור ספריות אב:

  1. sudo mkdir -p /var/www/your_domain/html

לאחר מכן, הקצו את הבעלות על הספרייה עם משתנה הסביבה $USER, אשר צריך להפנות למשתמש המערכת הנוכחי שלך:

  1. sudo chown -R $USER:$USER /var/www/your_domain/html

ההרשאות של שורש האתר שלך צריכות להיות נכונות אם לא שינית את ערך ה- umask שלך, אך תוכל לוודא זאת על ידי הקלדת:

  1. sudo chmod -R 755 /var/www/your_domain

לאחר מכן, צור דף דוגמה index.html באמצעות nano או העורך הטקסט שאתה מעדיף:

  1. nano /var/www/your_domain/html/index.html

בתוך זה, הוסף את ה-HTML הדוגמא הבא:

/var/www/your_domain/html/index.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:

  1. sudo nano /etc/nginx/sites-available/your_domain

הוסף את בלוק התצורה הבא, הדומה לברירת המחדל, אך מעודכן עבור הספרייה ושם הדומיין החדש שלך:

/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 קורא במהלך ההתחלה:

  1. sudo ln -s /etc/nginx/sites-available/your_domain /etc/nginx/sites-enabled/

השרת שלך כעת מכיל שני בלוקי שרת מופעלים ומוגדרים להגיב לבקשות על פי הנחיותיהם של listen ו־server_name (ניתן לקרוא עוד על איך ש־Nginx מעבדת את ההנחיות הללו כאן):

  • your_domain: יגיב לבקשות עבור your_domain ו־www.your_domain.
  • default: יגיב לכל בקשות בפורט 80 שאינן תואמות את שני הבלוקים האחרים.

כדי למנוע בעיה אפשרית של זיכרון דלי הגיבוב שעשוי להתגלות מהוספת שמות שרת נוספים לתצורה שלך, עליך להתאים את ערך היחיד ב־/etc/nginx/nginx.conf. פתח את הקובץ:

  1. sudo nano /etc/nginx/nginx.conf

מצא את ההכוונה server_names_hash_bucket_size והסר את סמל ה־# כדי לבטל את השורה:

/etc/nginx/nginx.conf
...
http {
    ...
    server_names_hash_bucket_size 64;
    ...
}
...

שמור וסגור את הקובץ כאשר אתה מסיים.

באשר למבחן כדי לוודא שאין שגיאות תחביר בכל אחד מקבצי ה־Nginx שלך:

  1. sudo nginx -t

אם אין כל תקלות, הפלט הבא יוצג:

Output
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful

כאשר הבחין בתצורה שלך עובר, הפעל מחדש את ה־Nginx כדי להפעיל את השינויים שלך:

  1. sudo systemctl restart 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