כיצד להעביר שורש אתר Nginx למיקום חדש ב־Ubuntu 22.04

הקדמה

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

במדריך זה, תעביר את שורש המסמך של Nginx למיקום חדש.

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

כדי להשלים את המדריך הזה, תצטרך:

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

  • A new location for your document root. In this tutorial, we will use the /mnt/volume-nyc3-01 directory for our new location. If you are using Block Storage on DigitalOcean, this guide will show you how to create and attach your volume. Your new document root location is configurable based on your needs, however. If you are moving your document root to a different storage device, you will want to select a location under the device’s mount point.

שלב 1 — העתקת קבצים למיקום החדש

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

ניתן לחפש את מיקום שורשי המסמך שלך באמצעות grep. נחפש בתיקיית /etc/nginx/sites-enabled כדי להגביל את המיקוד שלנו לאתרים פעילים. הדגל -R מבטיח ש־grep תדפיס גם את השורה עם ההוראה root ואת שמו המלא של הקובץ בפלט שלו:

  1. grep -R "root" /etc/nginx/sites-enabled

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

Output
/etc/nginx/sites-enabled/your_domain: root /var/www/your_domain/html; /etc/nginx/sites-enabled/default: root /var/www/html; /etc/nginx/sites-enabled/default: # deny access to .htaccess files, if Apache's document root /etc/nginx/sites-enabled/default:# root /var/www/your_domain;

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

עכשיו שאישרת את מיקום שורש המסמך שלך, ניתן להעתיק את הקבצים למיקומם החדש באמצעות rsync. בשימוש בדגל -a שומרים על ההרשאות ועל תכונות התיקיות האחרות, בעוד ש־-v מספק פלט מפורט כך שתוכל לעקוב אחר התקדמות הסנכרון:

הערה: וודא שאין סיומת לספרייה, שעשויה להיתן במקרה של שלמות באוטומטי. כאשר יש סיומת, rsync ישלוך את תוכן הספרייה אל נקודת העגינה במקום להעביר אותו אל ספריית html מקורית.

  1. sudo rsync -av /var/www/your_domain/html /mnt/volume-nyc3-01

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

Output
sending incremental file list created directory /mnt/volume-nyc3-01 html/ html/index.html sent 318 bytes received 39 bytes 714.00 bytes/sec total size is 176 speedup is 0.49

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

שלב 2 — עדכון קבצי התצורה

ה- Nginx משתמש בקבצי תצורה גלובליים וספציפיים לאתר. נשנה את קובץ בלוק השרת לפרויקט your_domain שלנו: /etc/nginx/sites-enabled/your_domain.

הערה: זכור להחליף your_domain בשם הדומיין שלך, וזכור שתערוך את קבצי בלוק השרת שיצאו כתוצאה מהפעלת הפקודה grep בשלב 1.

התחל על ידי פתיחת /etc/nginx/sites-enabled/your_domain בעורך:

  1. sudo nano /etc/nginx/sites-enabled/your_domain

מצא את השורה שמתחילה ב- root ועדכן אותה עם המיקום החדש של השורש. במקרה שלנו זה יהיה /mnt/volume-nyc3-01/html:

/etc/nginx/sites-enabled/your_domain
server {

        root /mnt/volume-nyc3-01/html;
        index index.html index.htm index.nginx-debian.html;
        . . .
}
. . .

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

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

שלב 3 — איתחול מחדש של Nginx

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

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

  1. sudo nginx -t

אם הכל בסדר, הוא צריך להחזיר:

Output
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful

אם הבדיקה נכשלה, חפש ותקן את הבעיות.

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

  1. sudo systemctl restart nginx

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

  1. sudo rm -Rf /var/www/your_domain/html

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

מסקנה

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

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

Source:
https://www.digitalocean.com/community/tutorials/how-to-move-an-nginx-web-root-to-a-new-location-on-ubuntu-22-04