כיצד להתקין Nginx על Ubuntu 22.04

הקדמה

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

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

הפוך לפעיל את היישומים שלך מ-פלטפורמת היישומים של DigitalOcean . התמקדו בהתרחבות של היישום שלך.

דרישות קדם

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

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

כאשר יש לך חשבון זמין, התחבר כמשתמש לא-רוט שלך כדי להתחיל.

שלב 1 – התקנת Nginx

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

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

  1. sudo apt update
  2. sudo apt install nginx

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

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

לפני בדיקת Nginx, עליך להגדיר את תוכנת הגנה האש כך שתאפשר גישה לשירות. Nginx רשום כשירות עם ufw בעת ההתקנה, ולכן פשוט לאפשר גישה ל-Nginx.

רשימת התצורות של היישום ש-ufw מכיר אופנית יהיה כך:

  1. sudo ufw app list

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

Output
Available applications: Nginx Full Nginx HTTP Nginx HTTPS OpenSSH

כפי שמוצג בפלט, יש שלושה פרופילים זמינים עבור Nginx:

  • Nginx Full: פרופיל זה פותח את הפורט 80 (תעבורת אינטרנט רגילה, לא מוצפנת) ואת הפורט 443 (תעבורת מוצפנת TLS/SSL)
  • Nginx HTTP: פרופיל זה פותח רק את הפורט 80 (תעבורת אינטרנט רגילה, לא מוצפנת)
  • Nginx HTTPS: פרופיל זה פותח רק את הפורט 443 (תעבורת מוצפנת TLS/SSL)

מומלץ לאפשר את הפרופיל המגביל ביותר שעדיין יאפשר את התעבורה שהגדרת. כרגע, נצטרך רק לאפשר תעבורה בפורט 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 – בדיקת שרת האינטרנט שלך

לסוף תהליך ההתקנה, Ubuntu 22.04 מתחילה את 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 Fri 2022-03-01 16:08:19 UTC; 3 days ago Docs: man:nginx(8) Main PID: 2369 (nginx) Tasks: 2 (limit: 1153) Memory: 3.5M CGroup: /system.slice/nginx.service ├─2369 nginx: master process /usr/sbin/nginx -g daemon on; master_process on; └─2380 nginx: worker process

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

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

  1. curl -4 icanhazip.com

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

http://your_server_ip

אתה אמור לקבל את עמוד הבית המוגדר ב- 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

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

כאשר משתמשים בשרת האינטרנט Nginx, בלוקי שרת (דומים למארחים וירטואליים ב-Apache) ניתן להשתמש כדי לארוז פרטי הגדרה ולארח יותר מדומיין אחד משרת אחד. נקבע דומיין בשם your_domain, אך עליך להחליף זאת בשם הדומיין שלך.

Nginx ב-Ubuntu 22.04 מכיל ברירת מחדל בלוק שרת אחד המוגדר לספק מסמכים מתוך ספרייה ב-/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!  The your_domain server block is working!</h1>
    </body>
</html>

שמור וסגור את הקובץ על ידי לחיצה על 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 לשם הדומיין שלנו.

הבא, בואו נאפשר את הקובץ על ידי יצירת קישור ממנו אל תיקיית ה-sites-enabled, שבה Nginx קורא בעת התחלת הפעולה:

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

הערה: Nginx משתמש בפרקטיקה נפוצה הנקראת קישורי סמליים, או סימלינקים, כדי לעקוב אחרי אילו בלוקי שרת שלך מופעלים. יצירת סימלינק היא כמו ליצור קיצור דרך בדיסק, כך שתוכל מאוחר יותר למחוק את הקיצור דרך מתיקיית sites-enabled תוך שמירה על בלוק השרת בתיקיית sites-available אם תרצה להפעיל אותו.

שני בלוקי שרת מופעלים כעת ומוגדרים להגיב לבקשות בהתבסס על ההנחיות של 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 והסר את סמל ה-# כדי להסיר את הערה מהשורה. אם אתה משתמש ב־nano, תוכל לחפש מהר מילים בקובץ על ידי לחיצה על CTRL ו־w.

הערה: הערת שורות בקוד – בדרך כלל על ידי שימוש ב־# בתחילת שורה – היא דרך נוספת לניטרולם מבלי למחוק אותם בפועל. קבצי התצורה נשלחים עם מספר אפשרויות מופסקות על מנת שיהיה אפשר להפעילן או לנטרלן, על ידי שינוי בין קוד פעיל ותיעוד.

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

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

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

  1. sudo nginx -t

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

  1. sudo systemctl restart nginx

כעת צריך שה־Nginx ישיר את שם הדומיין שלך. באפשרותך לבדוק זאת על ידי ניווט אל http://your_domain, שם תראה משהו דומה לזה:

שלב 6 – התנסות בקבצים וספריות חשובים ב־Nginx

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

תוכן

  • /var/www/html: התוכן הרשמי של האתר, שברירת מחדל מורכב רק מדף הבית המוגדר כברירת מחדל שראית קודם, מוצג מתוך התיקייה /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 תתעד ביומן זה.

מסקנה

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

אם תרצה לבנות ערימת אפליקציה מורכבת יותר, ראה את המאמר איך להתקין את Linux, Nginx, MySQL, PHP (ערימת LEMP) על Ubuntu 22.04.

כדי להגדיר HTTPS עבור שם הדומיין שלך עם תעוד SSL חינמי באמצעות Let’s Encrypt, עליך להמשיך לקרוא את המאמר איך לאבטח את Nginx עם Let’s Encrypt על Ubuntu 22.04.

Source:
https://www.digitalocean.com/community/tutorials/how-to-install-nginx-on-ubuntu-22-04