كيفية نقل جذر الويب لـ Nginx إلى موقع جديد على Ubuntu 22.04

المقدمة

على أوبونتو، يخزن خادم الويب Nginx مستنداته في /var/www/html، والذي يتم وضعه عادةً على جذر نظام الملفات بجانب بقية نظام التشغيل. في بعض الأحيان، من المفيد نقل جذر المستندات إلى موقع آخر، مثل نظام ملفات منفصل. على سبيل المثال، إذا كنت تخدم مواقع ويب متعددة من نفس مثيل Nginx، فإن وضع جذر مستندات كل موقع على حجمه الخاص يسمح لك بالتوسع استجابة لاحتياجات موقع أو عميل محدد.

في هذا الدليل، ستقوم بنقل جذر مستندات Nginx إلى موقع جديد.

المتطلبات المسبقة

لإكمال هذا الدليل، ستحتاج إلى:

سنستخدم اسم النطاق your_domain في هذا البرنامج التعليمي، ولكن يجب عليك استبدال ذلك باسم النطاق الخاص بك.

  • 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 كل من ملفات التكوين العامة والخاصة بالموقع. سنقوم بتعديل ملف كتلة الخادم لمشروعك اسم_نطاقك: /etc/nginx/sites-enabled/اسم_نطاقك.

ملاحظة: تذكر أن تستبدل اسم_نطاقك باسم نطاقك، وتذكر أنك ستقوم بتعديل ملفات كتلة الخادم التي تم إخراجها عند تشغيل الأمر grep في الخطوة 1.

ابدأ بفتح /etc/nginx/sites-enabled/اسم_نطاقك في محرر:

  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 في الخطوة ١، بما في ذلك الاختصارات أو إعادة الكتابة. سترغب أيضًا في تحديث هذه لتعكس موقع مجلد الوثيقة الجذر الجديد.

عندما تقوم بإجراء جميع التغييرات اللازمة، احفظ وأغلق الملف.

الخطوة ٣ — إعادة تشغيل 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