إعداد Nginx كخادم ويب وكوسيط عكسي (Reverse Proxy) لـ Apache على خادم Ubuntu 18.04 يمثل تكاملًا هامًا لتحسين أداء الخادم وتعزيز قدرته على تلبية الطلبات. يسمح هذا الإعداد بتحسين استجابة الخادم وتوزيع حمل العمل بين Nginx و Apache بشكل فعّال. سأقدم لك توجيهات شاملة لتحقيق هذا الإعداد.
أولاً وقبل أي شيء، تأكد من تثبيت Nginx و Apache على الخادم الخاص بك. يمكنك استخدام أمر التثبيت في نظام Ubuntu لتحقيق ذلك:
bashsudo apt update sudo apt install nginx apache2
بعد تثبيت كل من Nginx و Apache، يجب تعيين Apache للعمل على منفذ غير الافتراضي (80)، مثلاً منفذ 8080. قم بتحرير ملف الضبط لـ Apache باستخدام محرر نصوص، مثل nano:
bashsudo nano /etc/apache2/ports.conf
قم بتغيير خط Listen إلى:
confListen 127.0.0.1:8080
ثم، قم بتعيين Apache ليستمع فقط على عنوان الاستماع المحلي. قم بتحرير ملف الضبط الخاص بموقعك:
bashsudo nano /etc/apache2/sites-available/000-default.conf
وقم بتعديل السطر:
conf
بدلاً من:
conf
الآن، قم بإعادة تشغيل Apache لتطبيق التغييرات:
bashsudo service apache2 restart
بعد ذلك، تحتاج إلى تكوين Nginx للقيام بدور الخادم الويب والوسيط العكسي. قم بتحرير ملف التكوين الرئيسي لـ Nginx:
bashsudo nano /etc/nginx/nginx.conf
أضف تكوين للخادم كالتالي:
confserver { listen 80; server_name your_domain.com; location / { proxy_pass http://127.0.0.1:8080; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } }
لاحظ أنك يجب تغيير your_domain.com
بنطاق خادمك الفعلي. ثم، قم بإعادة تشغيل Nginx:
bashsudo service nginx restart
الآن، يعمل Nginx كواجهة أمامية توجه الطلبات إلى Apache عبر المنفذ 8080. يمكنك تخصيص هذه الإعدادات وتكوين المزيد حسب احتياجات خادمك وتطبيقك المحدد.
المزيد من المعلومات
بالتأكيد، سأقدم لك مزيدًا من التفاصيل حول تكوين Nginx كخادم ويب ووسيط عكسي لـ Apache على خادم Ubuntu 18.04.
-
تكوين مواقع فرعية (Virtual Hosts) في Nginx:
يمكنك تكوين مواقع فرعية في Nginx لدعم عدة مواقع على نفس الخادم. قم بإنشاء ملفات تكوين خاصة بكل موقع في دليل
/etc/nginx/sites-available/
. على سبيل المثال، لإضافة موقع فرعي باسم “subdomain.your_domain.com”، أنشئ ملفًا جديدًا مثل:bashsudo nano /etc/nginx/sites-available/subdomain
وأضف التكوين التالي:
confserver { listen 80; server_name subdomain.your_domain.com; location / { proxy_pass http://127.0.0.1:8080; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } }
بعد ذلك، قم بإنشاء رابط رمزي للتكوين في
sites-enabled
:bashsudo ln -s /etc/nginx/sites-available/subdomain /etc/nginx/sites-enabled/
ثم قم بإعادة تشغيل Nginx:
bashsudo service nginx restart
-
تكوين SSL/TLS:
يمكنك تحسين أمان الاتصال بواسطة تكوين شهادة SSL/TLS. يمكنك الحصول على شهادة SSL مجانية من Let’s Encrypt وتثبيتها باستخدام Certbot. للقيام بذلك، قم بتنفيذ الخطوات التالية:
bashsudo apt install certbot python3-certbot-nginx sudo certbot --nginx -d your_domain.com -d subdomain.your_domain.com
اتبع التعليمات لإكمال عملية التثبيت.
-
ضبط أمان Nginx:
يمكنك تعزيز أمان Nginx عبر تكوين إعدادات مثل قائمة البروتوكولات والتشفير. قم بتحرير ملف
/etc/nginx/nginx.conf
وقم بإضافة أو تعديل الخيارات التالية:confssl_protocols TLSv1.2 TLSv1.3; ssl_prefer_server_ciphers off; ssl_ciphers 'TLS_AES_128_GCM_SHA256:TLS_AES_256_GCM_SHA384'; ssl_session_timeout 1d; ssl_session_cache shared:MozSSL:10m; ssl_session_tickets off;
بعد ذلك، قم بإعادة تشغيل Nginx.
bashsudo service nginx restart
تأكد من أنك قد قمت بفحص تكوين Nginx بشكل دوري لتحسين الأمان وتكوينات الأداء.
-
مراقبة الأداء والصيانة:
يُنصح بتثبيت أدوات مراقبة الأداء مثل
htop
وتفعيل السجلات (logs) لكل Nginx و Apache. ذلك يمكن أن يساعدك في تحديد وحل المشكلات الأدائية.bashsudo apt install htop
يمكنك تفعيل السجلات لـ Nginx و Apache باستخدام الأمر:
bashsudo nano /etc/nginx/nginx.conf
وفي ملف التكوين، قم بتكوين قسم السجلات مثل:
conferror_log /var/log/nginx/error.log; access_log /var/log/nginx/access.log;
كما يمكنك فعل نفس الشيء لـ Apache.
أخيرًا، قم بتكرار هذه الخطوات بشكل دوري وقم بتحديث نسخ Nginx و Apache للحفاظ على أمان واستقرار الخادم الخاص بك.
الخلاصة
في ختام هذا الدليل الشامل لتكوين Nginx كخادم ويب ووسيط عكسي لـ Apache على خادم Ubuntu 18.04، يمكن القول إن هذا الإعداد يعزز أداء الخادم ويساعد في تحسين توزيع حمل العمل بشكل فعّال. بتوجيه طلبات الويب إلى Nginx الذي يعمل كواجهة أمامية، يمكن تخفيف ضغط Apache وتحسين استجابته. فيما يلي خلاصة للخطوات الرئيسية:
-
تثبيت Nginx و Apache:
- استخدم أوامر التثبيت لتثبيت Nginx و Apache على خادم Ubuntu 18.04.
-
تكوين Apache:
- قم بتعيين Apache للعمل على منفذ غير الافتراضي (مثل 8080) وقم بتحديد عنوان الاستماع المحلي.
-
تكوين Nginx كوسيط عكسي:
- قم بتعيين Nginx للعمل كخادم ويب ووسيط عكسي.
- قم بتكوين Nginx لتوجيه الطلبات إلى Apache عبر المنفذ المعين.
-
إضافة مواقع فرعية و SSL:
- قم بتكوين مواقع فرعية في Nginx لدعم عدة مواقع.
- قم بتحسين أمان الاتصال باستخدام شهادات SSL من Let’s Encrypt.
-
تحسين أمان Nginx:
- قم بتكوين إعدادات الأمان في Nginx لتحسين البروتوكولات وتشفير الاتصال.
-
مراقبة الأداء والصيانة:
- استخدم أدوات مراقبة الأداء مثل htop.
- فعل السجلات لـ Nginx و Apache لتسهيل تشخيص الأخطاء وتحسين الأداء.
-
الصيانة الدورية:
- تحديث نسخ Nginx و Apache بانتظام لضمان أمان واستقرار الخادم.
مع تنفيذ هذه الخطوات، ستكون قد أقمت ببناء بنية تحتية مستقرة وآمنة توفر أداءً محسنًا لتلبية احتياجات خادمك. تذكر دائماً أهمية فحص وتحديث التكوينات بشكل دوري للحفاظ على أفضل أداء وأمان.