כיצד להתקין Nginx על אובונטו 20.04 LTS

מדריך מלא שלב אחר שלב להתקנה והגדרה של שרת אינטרנט של Nginx במערכת אובונטו 20.04

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

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

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

מערכת עם אובונטו 20.04 מותקנת וא סודו מִשׁתַמֵשׁ. בנוסף, לא צריך שיהיה לך שרת אינטרנט אחר כמו Apache הפועל ביציאה 80 או 443.

התקנת Nginx

Nginx זמין במאגר Ubuntu 20.04 ו מַתְאִים ניתן להשתמש במנהל החבילות כדי להתקין אותו. אז כדי להתקין Nginx פתח את הטרמינל באמצעות ctrl+alt+t ורוץ:

sudo apt update && sudo apt התקן את nginx

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

sudo systemctl status nginx

לאחר הפעלת הפקודה לעיל, אתה אמור לקבל סטטוס Nginx as פעיל (ריצה) בצבע ירוק כפי שניתן לראות למטה.

הגדרת חומת האש של אובונטו (UFW)

כברירת מחדל, היציאות היוצאות HTTP (80) ו-HTTPS (443) סגורות באובונטו 20.04. בנוסף, דמון חומת האש המוגדר כברירת מחדל ufw מושבת מכיוון שכל היציאות סגורות.

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

sudo ufw לאפשר ssh

הפקודה לעיל מאפשרת את ssh גישה לשרת המרוחק, מבלי להתיר ssh תינעל מחוץ לשרת המרוחק.

לאחר הפעלת ssh גישה, אתה יכול להפעיל את ufw דמון חומת האש על ידי הפעלת:

sudo ufw enable

כעת, עליך לשנות את כללי חומת האש כדי לאפשר יציאות HTTP ו-HTTPS כך ש-Nginx יוכל לשרת תעבורת אינטרנט. כדי לשנות את הכללים, הפעל:

sudo ufw לאפשר 'Nginx Full'

Nginx מלא מאפשר יציאות HTTP ו-HTTPS לתנועה נכנסת ויוצאת מכל כתובות ה-IP.

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

מצב sudo ufw

הפקודה לעיל תוציא את הכללים שהוספנו אליהם ufw דמון חומת האש.

מתחבר לשרת Nginx

עכשיו כשהתקנו את Nginx והגדרנו ufw כדי לאפשר תעבורת אינטרנט נכנסת של HTTP ו-HTTPS, אתה אמור להיות מסוגל לגשת לשרת Nginx באמצעות כתובת ה-IP של השרת.

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

כתובת ip הצג את eth0 | grep inet | awk '{ print $2; }' | sed 's/\/.*$//'

לאחר שקיבלת את כתובת ה-IP, הדבק אותה בדפדפן שלך ולחץ על אנטר.

//השרת-IP שלך

אם הכל הוגדר כהלכה, אתה אמור להיות מסוגל לראות את דף האינטרנט 'ברוכים הבאים ל-nginx!'.

קבצים וספריות של Nginx

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

תוכן שרת אינטרנט

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

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

  • /בית//
  • /var/www/html/
  • /העדיף/

קבצי תצורה של Nginx

כל קובצי התצורה של Nginx נמצאים ב /etc/nginx מַדרִיך. בואו נסתכל על כמה מהקבצים החשובים שאנחנו צריכים כדי להגדיר דומיין בסיסי.

  • /etc/nginx/nginx.conf: קובץ זה מכיל את כל התצורה הדרושה להפעלת Nginx.
  • /etc/nginx/sites-available/: ספרייה זו כוללת את כל תצורת בלוקי השרת של דומיינים, אך כרגע אינן מופעלות/פרוסות ולכן אינן נגישות על ידי לקוחות.
  • /etc/nginx/sites-enabled/: ספרייה זו מכילה דומיינים פעילים/מופעלים כרגע, הנגישים ללקוח. כדי להפעיל דומיין עלינו לקשר את קובץ תצורת הדומיין ממנו אתרים זמינים אל ה מופעלים באתרים מַדרִיך.
  • /etc/nginx/snippets/: בספרייה זו, אנו יכולים לאחסן קטעי תצורה שניתן להשתמש בהם שוב ושוב. זה חוסך זמן רב בסביבת הייצור בשל העובדה שהוא יכול להפוך מקטעים/בלוקים של תצורה לשימוש חוזר.

יומני שרת

Nginx רושם את האירועים/פעילויות ומאחסן אותם בקובצי יומן ב- /var/log/nginx מַדרִיך. ה-Nginx רושם פעילויות בקבצים הבאים:

  • /var/log/nginx/access.log: קובץ זה רושם את הלקוחות שניגשו לשרת Nginx. הפרטים כוללים את כתובת ה-IP של הלקוח, שעה ותאריך, דפדפן המשמש לגישה לשרת ומערכת ההפעלה.
  • /var/log/nginx/error.log: קובץ זה רושם את השגיאות שבהן נתקל שרת Nginx בזמן ההפעלה.

אז, בסעיף זה, הסתכלנו בקצרה על כמה מקבצי Nginx וספריות חשובות שמספיקות כדי להתחיל.

הגדרת חסימות שרתים

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

נבחן כיצד ליצור בלוק שרת וכדי להדגים שנשתמש בו example.com כתחום בתהליך היצירה.

💡 החלף example.com עם שם הדומיין שלך.

לפני שנתחיל להגדיר שרת בלוקים, עלינו ליצור ספרייה שתשמש כספריית השורש לתוכן האתר. תן לנו ליצור /var/www/example.com/html ספרייה לשימוש בדומיין mkdir פקודה.

sudo mkdir -p /var/www/example.com/html

ה -עמ' option תיצור את כל ספריות האב הדרושות. כלומר, זה ייצור example.com ספריית אב ל html אם זה לא קיים.

שנה בעלות על הספרייה עם $USER משתנה הסביבה:

sudo chown -R $USER:$USER /var/www/example.com/html

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

ננו /var/www/example.com/html/index.html

הדבק את התוכן הבא בקובץ שיצרנו זה עתה בשרת.

  ברוכים הבאים ל-example.com! 

יו! ה-example.com נגיש!

ללחוץ ctrl+o לכתוב ולשמור את index.html קובץ ולאחר מכן, הקש ctrl+x לצאת ננו עוֹרֵך.

עכשיו סוף סוף נוכל לעבור ליצירת בלוק שרת, כך ש-Nginx יוכל לשרת את index.html כאשר משתמש כלשהו הולך אל example.com. אז כדי ליצור בלוק שרת אנחנו צריכים לעשות קובץ תצורה בשם example.com ב אתרים זמינים מַדרִיך. לשם כך, אנו משתמשים בננו ומריצים:

sudo nano /etc/nginx/sites-available/example.com

ולאחר מכן, הקלד או העתק/הדבק את התצורה הבאה. לאחר מכן לחץ ctrl+o והזן כדי לכתוב ולשמור. באופן דומה, הקש ctrl+x כדי לסגור את עורך הננו.

שרת { האזנה 80; תקשיב [::]:80; server_name example.com www.example.com; root /var/www/example-domain.com/html; index index.html; מיקום / { try_files $uri $uri/ =404; } }

התצורה שלעיל דומה לתצורת ברירת המחדל של בלוק שרת, שינינו שורש הצהרה כדי להצביע על ספריית השורש החדשה שלנו ושינתה את שם שרת לשם הדומיין שלנו. בזמן ש מקום{} הצהרה משמשת כהצהרת error catch אם לא נמצאו קבצים ומציגה שגיאה 404 ללקוח.

לאחר מכן, נוכל להפעיל את חסימת השרת שלנו כך ש-Nginx ישרת example.com דפי אינטרנט. כדי להפעיל את חסימת השרת שלנו עלינו ליצור קישור סימול של example.com קובץ מ אתרים זמינים ל מופעלים באתרים מַדרִיך. כדי לעשות זאת, הפעל:

sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled

קישור ייווצר ב מופעל באתר ספרייה ועכשיו example.com צריך להיות מופעל. כעת יש לנו שני בלוקי שרת מופעלים בשרת Nginx שלנו שיגיבו לבקשה על סמך להקשיב ו sever_name הנחיות שנשמרו ב example.com תצורת בלוק שרת.

כדי לבדוק אם כל קבצי התצורה נכונים ואין שגיאת תחביר, הרץ:

sudo nginx -t

כעת, סוף סוף הפעל מחדש את Nginx כדי להחיל את השינויים על ידי הפעלת הפקודה הבאה:

sudo systemctl הפעל מחדש את nginx

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

הערה: כדי שהסעיף לעיל יעבוד, תצטרך להגדיר דומיין משלך ולהחליף אותו example.com עם שם דומיין משלך. כמו כן, תצטרך להגדיר את ה-DNS עבור הדומיין שלך כך שיצביע על כתובת ה-IP של שרת Nginx שלך.

לסיום, בדקנו כיצד להתקין את Nginx, להגדיר ufw כדי לאפשר גישה מרחוק לשרת Nginx, מחובר ל-Nginx מרחוק, הכירו כמה קבצים וספריות Nginx בסיסיות ולמדו כיצד להגדיר בלוק שרת.

כדי לדעת וללמוד עוד על Nginx, אולי תרצה לראות את Nginx wiki.