איך להתקין את Nginx על Ubuntu 20.04

הקדמה

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

במדריך זה, נדון באופן שיתוף המשתמשים במקור Nginx על השרת שלך Ubuntu 20.04, נכוון את הגישה לגישת השרת, ננהל את תהליך Nginx, ונקבע גושי שרת לאירוח של יותר מדומיין אחד משרת יחיד.

פשוט לפרסם אפליקציות עם DigitalOcean App Platform . פרסום ישירות מתוך GitHub בדקות.

דרישות מוקדמות

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

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

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

שלב 1 – התקנת Nginx

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

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

  1. sudo apt update
  2. sudo apt install nginx

לאחר שנאשר את הליך, 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 מלא: פרופיל זה פותח את שני פורטים 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 20.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 2020-04-20 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) ניתן להשתמש כדי לכסות פרטי הגדרה ולארח יותר מדומיין אחד משרת אחד. נקבע דומיין בשם הדומיין_שלך, אך אתה צריך להחליף את זה בשם הדומיין שלך.

Nginx על Ubuntu 20.04 מכיל ברירת מחדל בלוק שרת אחד שמוגדר לשרות מסמכים מתוך תיקייה בנתיב /var/www/html. בעוד שזה עובד טוב עבור אתר יחיד, זה יכול להיות לא נוח אם אתה מארח מספר אתרים. במקום לשנות את /var/www/html, בואו ניצור מבנה תיקיות בתוך /var/www לאתר הדומיין_שלך, ונשאיר את /var/www/html במקום כתיקיית ברירת המחדל לשירות אם בקשת לקוח לא תואמת אתרים אחרים.

צור את התיקייה עבור הדומיין_שלך כך: באמצעות הדגל -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. sudo 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: התוכן האינטרנטי האמיתי, שברירת מחדל מורכב רק מדף 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 תירשם ביומן זה.

מסקנה

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

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

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

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