איך להתקין את Nginx על Rocky Linux 9

הקדמה

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

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

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

לפני שתתחיל במדריך זה, עליך להיות בעל משתמש רגיל לא משתמש ב־root עם הרשאות sudo המוגדרות על השרת שלך. תוכל ללמוד כיצד להגדיר חשבון משתמש רגיל על ידי מעקב אחרי ה־מדריך להגדרת שרת התחלתי עבור Rocky Linux 9 שלנו.

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

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

שלב 1 – התקנת Nginx

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

התקן את חבילת ה-nginx עם dnf install:

  1. sudo dnf install nginx

כאשר תתבקש, הזן y כדי לאשר את רצונך להתקין את nginx. לאחר מכן, dnf יתקין את Nginx וכל התלויות הדרושות בשרת שלך.

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

  1. sudo systemctl enable nginx
  2. sudo systemctl start nginx

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

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

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

נפעל את הפקודה הבאה כדי להפעיל באופן קבוע חיבורי HTTP בפורט 80:

  1. sudo firewall-cmd --permanent --add-service=http

לאמת שהשירות הגנת האש http נוסף בהצלחה, ניתן להפעיל את הפקודה הבאה:

  1. sudo firewall-cmd --permanent --list-all

תראו פלט כמו זה:

Output
public target: default icmp-block-inversion: no interfaces: sources: services: cockpit dhcpv6-client http ssh ports: protocols: masquerade: no forward-ports: source-ports: icmp-blocks: rich rules:

כדי להחיל את השינויים, יידרוש לטעון מחדש את שירות האש:

  1. sudo firewall-cmd --reload

השרת שלך כעת אמור להיות נגיש למבקרים חיצוניים:

שלב 3 – בדיקת שרת האינטרנט שלך

בנקודה זו, שרת האינטרנט שלך אמור לעמוד ולרוץ:

ניתן להשתמש בפקודת systemctl status כדי לוודא שהשירות פועל:

  1. systemctl status nginx
Output
● nginx.service - The nginx HTTP and reverse proxy server Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled; vendor preset: disabled) Active: active (running) since Wed 2022-09-14 21:03:46 UTC; 7min ago Process: 18384 ExecStartPre=/usr/bin/rm -f /run/nginx.pid (code=exited, status=0/SUCCESS) Process: 18385 ExecStartPre=/usr/sbin/nginx -t (code=exited, status=0/SUCCESS) Process: 18386 ExecStart=/usr/sbin/nginx (code=exited, status=0/SUCCESS) Main PID: 18387 (nginx) Tasks: 3 (limit: 10938) Memory: 2.8M CPU: 43ms CGroup: /system.slice/nginx.service ├─18387 "nginx: master process /usr/sbin/nginx" ├─18388 "nginx: worker process" └─18389 "nginx: worker process"

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

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

  1. curl -4 icanhazip.com

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

http://your_server_ip

תקבל את עמוד הנחיתה הברירתי של Nginx:

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

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

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

כדי לעצור את השרת האינטרנט שלך, השתמש ב־systemctl stop:

  1. sudo systemctl stop nginx

כדי להתחיל את השרת האינטרנט כאשר הוא כבוי, השתמש ב־systemctl start:

  1. sudo systemctl start nginx

כדי לעצור ולאחר מכן להתחיל מחדש את השירות, השתמש ב־systemctl restart:

  1. sudo systemctl restart nginx

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

  1. sudo systemctl reload nginx

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

  1. sudo systemctl disable nginx

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

  1. sudo systemctl enable nginx

שלב 5 – הכרת יסודות עם קבצים ותיקיות חשובים של Nginx

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

תוכן

  • /usr/share/nginx/html: התוכן האינטרנטי האמיתי, שברירת מחדל מורכב רק מדף הבית של Nginx שראית קודם, מוצג מתוך התיקייה /usr/share/nginx/html. זה ניתן לשינוי על ידי שינוי קבצי התצורה של Nginx.

תצורת השרת

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

לוגים של השרת

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

עכשיו עליך להכין את האתר כך שיכול לארח דומיינים אחד או יותר.

שלב 6 – הגדרת בלוקי שרת (אופציונלי)

כאשר משתמשים בשרת האינטרנט Nginx, בלוקי השרת (דומים למארחים וירטואליים ב-Apache) ניתן להשתמש בהם כדי לארגן פרטי הגדרה ולארח יותר מדומיין אחד משרת אחד. ב-Rocky Linux 9, בלוקי השרת מוגדרים בקבצי .conf השוכנים ב-/etc/nginx/conf.d. נקבע דומיין בשם your_domain, אך עליך להחליף את זה עם שם הדומיין שלך.

כברירת מחדל, ה-Nginx ב-Rocky Linux 9 מוגדר לשרת מסמכים מתוך ספרייה ב-/usr/share/nginx/html. בעוד שזה עובד טוב עבור אתר יחיד, זה יכול להפוך לבלתי ניתן לניהול אם אתה מארח אתרים מרובים. במקום לשנות את /usr/share/nginx/html, תיצור מבנה ספריות בתוך /var/www עבור האתר your_domain, שהופך את /usr/share/nginx/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

עכשיו תיצור דף index.html לבדיקת תצורת בלוק השרת. העורך הטקסט המובנה שב-Rocky Linux 9 הוא vi. vi הוא עורך טקסט עוצמתי מאוד, אך הוא עשוי להיות מעט מאתגר למשתמשים שחסרים בניסיון עם זה. יתכן ותרצה להתקין עורך טקסט ידידותי יותר כמו nano כדי לסייע בעריכת קבצי התצורה על השרת שלך ב-Rocky Linux 9:

  1. sudo dnf install nano

באמצעות זאת, תיצור דף 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/conf.d/שם_הדומיין_שלך.conf:

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

הדבק את בלוק התצורה הבא:

/etc/nginx/conf.d/your_domain.conf
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 לשם הדומיין שלנו. שמור וסגור את הקובץ.

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

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

לאחר מכן, בדוק כדי לוודא שאין שגיאות תחביר בכל אחד מקבצי ה-Nginx שלך, באמצעות nginx -t:

  1. sudo nginx -t

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

  1. sudo systemctl restart nginx

לפני שתוכל לבדוק את השינויים מהדפדפן שלך, עליך לעדכן את קשרי האבטחה של SELinux של השרת שלך כך ש-Nginx יורשה לשרת תוכן מהתיקייה /var/www/your_domain.

עדכון זה של ההקשר של chcon יאפשר לשורש המסמך המותאם אישית שלך לשרת כתוכן HTTP:

  1. chcon -vR system_u:object_r:httpd_sys_content_t:s0 /var/www/your_domain/

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

מסקנה

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

כדי להגדיר HTTPS עבור שם הדומיין שלך עם תעודת SSL חינמית באמצעות Let's Encrypt, עליך להמשיך לכתבה "איך לאבטח את Nginx עם Let's Encrypt על Rocky Linux 9". Let’s Encrypt הוראות לאיך לאבטח את Nginx עם Let’s Encrypt על Rocky Linux 9.

Source:
https://www.digitalocean.com/community/tutorials/how-to-install-nginx-on-rocky-linux-9