הקדמה
Nginx הוא אחד משרתי האינטרנט הפופולריים ביותר בעולם ואחראי לאירוח של חלק מהאתרים הגדולים והבעלי תעבורה הגבוהה ביותר באינטרנט. זהו בחירה קלה שניתן להשתמש בה הן כשרת אינטרנט והן כפרוקסי הפוך.
במדריך זה, תסתכל על כיצד להתקין את Nginx על השרת שלך ב־Rocky Linux 9, להתאים את הגנת האש, לנהל את תהליך ה־Nginx, ולהגדיר גושי שרת כדי לארח יותר מדומיין אחד משרת אחד.
דרישות מוקדמות
לפני שתתחיל במדריך זה, עליך להיות בעל משתמש רגיל לא משתמש ב־root עם הרשאות sudo המוגדרות על השרת שלך. תוכל ללמוד כיצד להגדיר חשבון משתמש רגיל על ידי מעקב אחרי ה־מדריך להגדרת שרת התחלתי עבור Rocky Linux 9 שלנו.
בנוסף, תרצה לרשום את שם הדומיין באופן אופציונלי לפני שתסיים את השלבים האחרונים של ההדרכה. כדי ללמוד עוד על כיצד להגדיר שם דומיין עם DigitalOcean, אנא התייחס ל־מבוא ל־DigitalOcean DNS שלנו.
כאשר יש לך חשבון זמין, התחבר כמשתמש לא משתמש כדי להתחיל.
שלב 1 – התקנת Nginx
מכיוון ש-Nginx זמין במאגרי הריפוזיטוריות המובנים של Rocky, תוכל להתקין אותו עם פקודה אחת, באמצעות מנהל החבילות dnf
.
התקן את חבילת ה-nginx
עם dnf install
:
- sudo dnf install nginx
כאשר תתבקש, הזן y
כדי לאשר את רצונך להתקין את nginx
. לאחר מכן, dnf
יתקין את Nginx וכל התלויות הדרושות בשרת שלך.
לאחר שההתקנה תסתיים, הפעל את הפקודות הבאות כדי לאפשר ולהתחיל את שרת האינטרנט:
- sudo systemctl enable nginx
- sudo systemctl start nginx
זה יגרום ל-Nginx להתחיל מחדש באופן אוטומטי בכל פעם שהשרת שלך מתאושש. השרת האינטרנט החדש שלך כעת צריך להיות פועל, אך לפני בדיקתו, כנראה תצטרך לבצע שינוי בתצורת הגנת האש שלך.
שלב 2 – התאמת הגנת האש
אם הפעלת את הגנת האש firewalld
כחלק ממדריך ההתקנה הראשוני של Rocky Linux 9, תצטרך להתאים את הגדרות הגנת האש כדי לאפשר חיבורים חיצוניים לשרת האינטרנט של Nginx שרץ על פורט 80
כברירת מחדל.
נפעל את הפקודה הבאה כדי להפעיל באופן קבוע חיבורי HTTP בפורט 80
:
- sudo firewall-cmd --permanent --add-service=http
לאמת שהשירות הגנת האש http
נוסף בהצלחה, ניתן להפעיל את הפקודה הבאה:
- sudo firewall-cmd --permanent --list-all
תראו פלט כמו זה:
Outputpublic
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:
כדי להחיל את השינויים, יידרוש לטעון מחדש את שירות האש:
- sudo firewall-cmd --reload
השרת שלך כעת אמור להיות נגיש למבקרים חיצוניים:
שלב 3 – בדיקת שרת האינטרנט שלך
בנקודה זו, שרת האינטרנט שלך אמור לעמוד ולרוץ:
ניתן להשתמש בפקודת systemctl status
כדי לוודא שהשירות פועל:
- 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 הציבורית שלך כפי שהתקבלה ממיקום אחר באינטרנט:
- curl -4 icanhazip.com
כשיש לך את כתובת ה-IP של השרת שלך, הזן אותה בסרגל הכתובת של הדפדפן שלך:
http://your_server_ip
תקבל את עמוד הנחיתה הברירתי של Nginx:
אם אתה נמצא בדף זה, השרת שלך פועל בצורה תקינה ומוכן להינהל.
שלב 4 – ניהול תהליך ה-Nginx
עכשיו שיש לך שרת אינטרנט פעיל, בוא נסתכל על כמה פקודות ניהול שימושיות.
כדי לעצור את השרת האינטרנט שלך, השתמש ב־systemctl stop
:
- sudo systemctl stop nginx
כדי להתחיל את השרת האינטרנט כאשר הוא כבוי, השתמש ב־systemctl start
:
- sudo systemctl start nginx
כדי לעצור ולאחר מכן להתחיל מחדש את השירות, השתמש ב־systemctl restart
:
- sudo systemctl restart nginx
אם אתה רק עושה שינויים בתצורה, ישנה אפשרות לטעון מחדש את Nginx בלעדייך לשבור את החיבורים. לעשות זאת, השתמש ב־systemctl reload
:
- sudo systemctl reload nginx
בשלב הקודם במדריך זה, הגדרת את Nginx להתחיל אוטומטית עם האמצעים. תוכל לבטל את ההתנהגות זו על ידי שימוש ב־systemctl disable
:
- sudo systemctl disable nginx
כדי לאפשר שוב לשירות להתחיל באמצעות האמצעים, תקליד:
- 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
כדי ליצור כל ספריות הורים נדרשות:
- sudo mkdir -p /var/www/your_domain/html
הבא, הקצאת בעלות על התיקייה עם משתנה הסביבה $USER
, שצריך להפנות למשתמש המערכת הנוכחי שלך:
- sudo chown -R $USER:$USER /var/www/your_domain/html
עכשיו תיצור דף index.html
לבדיקת תצורת בלוק השרת. העורך הטקסט המובנה שב-Rocky Linux 9 הוא vi
. vi
הוא עורך טקסט עוצמתי מאוד, אך הוא עשוי להיות מעט מאתגר למשתמשים שחסרים בניסיון עם זה. יתכן ותרצה להתקין עורך טקסט ידידותי יותר כמו nano
כדי לסייע בעריכת קבצי התצורה על השרת שלך ב-Rocky Linux 9:
- sudo dnf install nano
באמצעות זאת, תיצור דף index.html
לדוגמה באמצעות nano
או העורך האהוב עליך:
- nano /var/www/your_domain/html/index.html
בפנים, הוסף את ה-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
:
- sudo nano /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
:
- sudo nginx -t
אם אין בעיות, הפעל מחדש את Nginx כדי להפעיל את השינויים שלך:
- sudo systemctl restart nginx
לפני שתוכל לבדוק את השינויים מהדפדפן שלך, עליך לעדכן את קשרי האבטחה של SELinux של השרת שלך כך ש-Nginx יורשה לשרת תוכן מהתיקייה /var/www/your_domain
.
עדכון זה של ההקשר של chcon
יאפשר לשורש המסמך המותאם אישית שלך לשרת כתוכן HTTP:
- 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