הקדמה
Nginx הוא אחד משרתי האינטרנט הפופולריים ביותר בעולם ואחראי לאירוח של חלק מהאתרים הגדולים והנצים ביותר באינטרנט. זהו בחירה קלה שניתן להשתמש בה כשרת אינטרנט או פרוקסי הפוך.
במדריך זה, נדון באופן שיתוף המשתמשים במקור Nginx על השרת שלך Ubuntu 20.04, נכוון את הגישה לגישת השרת, ננהל את תהליך Nginx, ונקבע גושי שרת לאירוח של יותר מדומיין אחד משרת יחיד.
פשוט לפרסם אפליקציות עם DigitalOcean App Platform . פרסום ישירות מתוך GitHub בדקות.
דרישות מוקדמות
לפני שתתחיל במדריך זה, עליך להיות מחובר כמשתמש רגיל, לא עם הרשאות ראשי. ניתן ללמוד כיצד להגדיר חשבון משתמש רגיל על ידי מעקב אחר המדריך שלנו ל הגדרת שרת ראשונית ל Ubuntu 20.04.
תרצה גם אופציונלית להירשם עם שם דומיין לפני שתסיים את השלבים האחרונים של המדריך הזה. כדי ללמוד עוד על הגדרת שם דומיין עם DigitalOcean, אנא הפנה ל הקדמה ל DNS של DigitalOcean.
כאשר יש לך חשבון זמין, התחבר כמשתמש הלא-רוט שלך כדי להתחיל.
שלב 1 – התקנת Nginx
מכיוון ש- Nginx זמין במאגרי הנתונים המוגדרים כברירת מחדל של Ubuntu, אפשר להתקין אותו מתוך מאגרים אלו באמצעות מערכת האריזות apt
.
מאחר שזו הפעולה הראשונה שלנו עם מערכת האריזות apt
במהלך זה, נעדכן את אינדקס החבילות המקומי שלנו כך שנספק גישה לרשימות החבילות העדכניות ביותר. לאחר מכן, נוכל להתקין nginx
:
לאחר שנאשר את הליך, apt
יתקין את Nginx וכל התלויות הדרושות לשרת שלך.
שלב 2 – כיוון הגן האש
לפני בדיקת Nginx, עליך להתאים את תוכנת הגימור האש לאפשר גישה לשירות. Nginx מתיחס אל עצמו כשירות עם ufw בעת ההתקנה, ומהופך את זה פשוט לאפשר גישה ל-Nginx.
רשימת תצורות היישום ש-ufw יודעת לעבוד איתן על ידי כתיבה:
תקבל רשימת פרופילי היישום:
OutputAvailable applications:
Nginx Full
Nginx HTTP
Nginx HTTPS
OpenSSH
כפי שמוצג בפלט, קיימים שלושה פרופילים זמינים עבור Nginx:
- Nginx מלא: פרופיל זה פותח את שני פורטים 80 (תעבורת אינטרנט רגילה, לא מוצפנת) ו-443 (תעבורת מוצפנת TLS/SSL)
- Nginx HTTP: פרופיל זה פותח רק את פורט 80 (תעבורת אינטרנט רגילה, לא מוצפנת)
- Nginx HTTPS: פרופיל זה פותח רק את פורט 443 (תעבורת מוצפנת TLS/SSL)
מומלץ להפעיל את הפרופיל הכי מגביל שעדיין יאפשר את התעבורה שהגדרת. כרגע, אנו רק צריכים לאפשר תעבורה בפורט 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 – בדיקת שרת האינטרנט שלך
בסופו של תהליך ההתקנה, Ubuntu 20.04 מתחילה את 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 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 הציבורית שלך כפי שהתקבלה ממקום אחר באינטרנט:
כשיש לך את כתובת ה-IP של השרת שלך, הכנס אותה לתיבת הכתובת של הדפדפן שלך:
http://your_server_ip
עליך לקבל את דף הפינוי המוגדר כברירת מחדל של Nginx:
אם אתה נמצא בדף זה, השרת שלך רץ תקין ומוכן לניהול.
שלב 4 – ניהול תהליך ה-Nginx
עכשיו שיש לך את שרת האינטרנט שלך פועל, בואו נבדוק מספר פקודות ניהול בסיסיות.
כדי לעצור את שרת האינטרנט שלך, הקלד:
כדי להתחיל את שרת האינטרנט כאשר הוא עצור, הקלד:
כדי לעצור ולאחר מכן להתחיל שוב את השירות, הקלד:
אם אתה רק עורך שינויים בתצורה, Nginx יכול לטעון מחדש ללא ניתוקים. כדי לעשות זאת, הקלד:
בברירת המחדל, Nginx מוגדר להתחיל באופן אוטומטי כאשר השרת מתנע. אם זה לא מה שתרצה, תוכל להשבית את ההתנהגות הזו על ידי הקלדת:
כדי להפעיל מחדש את השירות כך שיתחיל באופן אוטומטי בעת ההפעלה, תוכל להקליד:
עכשיו למדת את הפקודות הבסיסיות לניהול ואתה אמור להיות מוכן להגדיר את האתר כך שייכול לארח יותר מדומיין אחד.
שלב 5 – הגדרת בלוקי שרת (מומלץ)
בעת שימוש בשרת האינטרנט Nginx, בלוקי שרת (דומים למארחים וירטואליים ב-Apache) ניתן להשתמש כדי לכסות פרטי הגדרה ולארח יותר מדומיין אחד משרת אחד. נקבע דומיין בשם הדומיין_שלך, אך אתה צריך להחליף את זה בשם הדומיין שלך.
Nginx על Ubuntu 20.04 מכיל ברירת מחדל בלוק שרת אחד שמוגדר לשרות מסמכים מתוך תיקייה בנתיב /var/www/html
. בעוד שזה עובד טוב עבור אתר יחיד, זה יכול להיות לא נוח אם אתה מארח מספר אתרים. במקום לשנות את /var/www/html
, בואו ניצור מבנה תיקיות בתוך /var/www
לאתר הדומיין_שלך, ונשאיר את /var/www/html
במקום כתיקיית ברירת המחדל לשירות אם בקשת לקוח לא תואמת אתרים אחרים.
צור את התיקייה עבור הדומיין_שלך כך: באמצעות הדגל -p
ליצירת כל התיקיות האבות הדרושות:
השמות המשתנים יהיו נכונים עם המשתנה הסביבתי $USER
:
ההרשאות של שורשי האתר שלך צריכות להיות נכונות אם לא שינית את ערך ה־umask
שלך, שמגדיר את ההרשאות המוגדרות כברירת מחדל של קבצים. כדי לוודא שההרשאות שלך נכונות ומאפשרות לבעלים לקרוא, לכתוב ולבצע את הקבצים בזמן שנותן רק הרשאות קריאה וביצוע לקבוצות ולאחרים, ניתן להזין את הפקודה הבאה:
לאחר מכן, ניתן ליצור דף דוגמה index.html
באמצעות nano
או העורך האהוב עליך:
בתוך הקובץ, הוסף את ה־HTML הדוגמא הבא:
שמור וסגור את הקובץ על ידי לחיצה על Ctrl+X
כדי לצאת, ואז כאשר תתבקש לשמור, לחץ על Y
ואז על Enter
.
כדי ש־Nginx ישרת את התוכן הזה, חשוב ליצור בלוק שרת עם ההנחיות הנכונות. במקום לשנות את קובץ התצורה המוגדר כברירת מחדל ישירות, ניצור חדש ב- /etc/nginx/sites-available/your_domain
:
הדבק את בלוק ההגדרות הבא, שדומה לברירת המחדל, אך מעודכן עבור התיקייה ושם הדומיין שלנו:
שים לב שעדכנו את ההגדרה של root
לתיקייה החדשה שלנו, ואת server_name
לשם הדומיין שלנו.
לאחר מכן, בואו נאפשר את הקובץ על ידי יצירת קישור ממנו לתיקיית sites-enabled
, שבה Nginx קורא בעת ההתחלה:
הערה: Nginx משתמש בפרקטיקה נפוצה הנקראת קישורי סמליים, או סימלינקים, כדי לעקוב אחרי אילו בלוקי שרת שלך מופעלים. יצירת סימלינק היא כמו ליצור קיצור בדיסק, כך שתוכל למחוק את הקיצור מתיקיית sites-enabled
בהמשך ולשמור על הבלוק שרת ב- sites-available
אם תרצה להפעיל אותו.
שני בלוקי שרת מופעלים כעת ומוגדרים להגיב לבקשות על פי ההכוונות שלהם ל- listen
ול- server_name
(ניתן לקרוא עוד על כיצד Nginx מעבד את הכוונות הללו כאן):
your_domain
: יגיב לבקשות עבורyour_domain
ו־www.your_domain
.default
: יגיב לכל בקשות בפורט 80 שאינן תואמות לשני הבלוקים האחרים.
כדי למנוע בעיה אפשרית של זיכרון חשישי של דלי האש שעשוי להתעורר מהוספת שמות שרת נוספים, יש להתאים ערך יחיד בקובץ /etc/nginx/nginx.conf
. פתח את הקובץ:
מצא את הכוונת server_names_hash_bucket_size
והסר את סמל ה- #
כדי להסיר את ההערה מהשורה. אם אתה משתמש ב־nano, תוכל לחפש מהר מילים בקובץ על ידי לחיצה על CTRL
ועל w
.
הערה: יש דרכים נוספות לבטל שורות קוד, בדרך כלל על ידי שימוש ב־#
בתחילת השורה. קבצי התצורה נשלחים עם מספר אפשרויות מסומנות כהערות כך שניתן להפעיל או לנטרל אותן, על ידי החלפה בין קוד פעיל לתיעוד.
...
http {
...
server_names_hash_bucket_size 64;
...
}
...
שמור וסגור את הקובץ כאשר תסיים.
באשף הבא, בדוק כדי לוודא שאין שגיאות תחביר באף אחד מקבצי ה־Nginx שלך:
אם אין בעיות, הפעל מחדש את ה־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