دليل كامل لبناء وكيل عكسي آمن لـ Nginx
إنشاء وكيل عكسي آمن وموثوق وقابل للتطوير أمر بالغ الأهمية للشركات ومحترفي تكنولوجيا المعلومات الذين يديرون مواقع ويب عالية الاستخدام أو تطبيقات معقدة. يُعد Nginx، وهو خادم ويب ووكيل عكسي مفتوح المصدر، حلاً فعالاً لتوجيه حركة المرور إلى خدماتك الخلفية وتحسينها وتأمينها. في هذا الدليل، سنشرح عملية إعداد وكيل عكسي قوي باستخدام Nginx على نظام Ubuntu 24.04، مع تغطية خطوات مهمة مثل تشفير TLS، وتحديد السرعة، والتكامل مع Cloudflare.
إذا كنت تدير مواقع ويب على مستوى المؤسسة أو منصات التجارة الإلكترونية أو خوادم الوسائط، فسيساعدك هذا الدليل على تحسين الأداء وضمان التشغيل المستمر وحماية البنية الأساسية لديك من الثغرات الأمنية.
ما هو الوكيل العكسي Nginx؟
يعمل وكيل Nginx العكسي كخادم وسيط بين العملاء وخدمات الواجهة الخلفية. فهو يُعيد توجيه طلبات العملاء إلى الخادم الخلفي المناسب، مما يُحسّن توزيع الحمل، ويُعزز الأمان، ويُمكّن ميزات مثل التخزين المؤقت، وإنهاء SSL، وتصفية حركة البيانات. يُعد هذا الإعداد مفيدًا بشكل خاص لاستضافة خوادم الوسائط، والتطبيقات متعددة المواقع، والخدمات خلف جدران الحماية.
إس بي بي-آي تي بي-59إي1987
لماذا تحتاج إلى وكيل عكسي
يوفر الوكيل العكسي العديد من الفوائد الرئيسية:
- تعزيز الأمن:يخفي عناوين IP الخاصة بخوادم الواجهة الخلفية ويمكّن التشفير عبر TLS/SSL.
- موازنة التحميل:توزيع حركة المرور بالتساوي عبر خوادم خلفية متعددة.
- تحسين:يقلل من زمن الوصول ويحسن كفاءة الموارد.
- قابلية التوسع:يجعل إدارة السيناريوهات ذات الحركة المرورية الكثيفة أسهل.
- سهولة الإدارة:يبسط تكوين خدمات الواجهة الخلفية المتعددة خلف نطاق موحد.
في هذا البرنامج التعليمي، سنوضح كيفية:
- إعداد Nginx كوكيل عكسي.
- قم بتأمين إعداداتك باستخدام شهادات Let's Encrypt TLS.
- قم بتكوين التحسينات المتقدمة مثل تحديد المعدل وإعادة توجيه الطلب.
- دمج Cloudflare لتجاوز قيود منفذ مزود خدمة الإنترنت.
الخطوة 1: تثبيت Nginx و Certbot على Ubuntu 24.04
تحديث نظامك
قبل تثبيت أي برنامج، تأكد من تحديث نظامك:
sudo apt update && sudo apt upgrade تثبيت Nginx و Certbot
استخدم الأوامر التالية لتثبيت Nginx وCertbot مع البرنامج الإضافي Nginx:
sudo apt install nginx -y sudo apt install certbot python3-certbot-nginx -y التحقق من التثبيت
تأكد من تشغيل Nginx:
sudo systemctl status nginx لاختبار الوصول، حدد عنوان IP الخاص بخادمك:
اي بي ا قم بزيارة عنوان IP في المتصفح. في حال نجاح ذلك، ستظهر لك صفحة ترحيب Nginx الافتراضية.
الخطوة 2: تكوين قواعد جدار الحماية
تمكين جدار الحماية غير المعقد (UFW)
يتيح لك UFW إدارة قواعد جدار الحماية بسهولة:
sudo ufw تسمح بـ "Nginx Full" Sudo ufw تسمح بتمكين OpenSSH sudo ufw تحقق من حالة جدار الحماية لديك للتأكد من أن المنافذ الصحيحة مفتوحة:
حالة sudo ufw الخطوة 3: إعداد تكوين وكيل Nginx
إنشاء ملفات تكوين مخصصة
لمزيد من المرونة والأمان، استخدم ملفات المقتطفات لتخزين تكوينات محددة. أنشئ الملفات التالية:
- عناوين الأمان:
قم بتحديد رؤوس الأمان لتعزيز الحماية:Sudo nano /etc/nginx/snippets/security-headers.confإضافة رأس خيارات إطار X "SAMEORIGIN"؛ إضافة رأس خيارات نوع محتوى X "nosniff"؛ إضافة رأس حماية XSS "1؛ الوضع=block"؛ - إعدادات الوكيل:
تحسين التدفقات الطويلة ومنع الاستجابات البطيئة:سودو نانو /etc/nginx/snippets/proxy.confمهلة اتصال الوكيل 60 ثانية؛ مهلة إرسال الوكيل 60 ثانية؛ مهلة قراءة الوكيل 60 ثانية؛ - حدود المعدل:
التخفيف من الطلبات المفرطة:Sudo nano /etc/nginx/snippets/rate-limit.confمنطقة الحد الأقصى للطلب $binary_remote_addr=mylimit:10m rate=10r/s;
تضمين المقاطع في التكوين الرئيسي
تعديل تكوين Nginx الرئيسي:
سودو نانو /etc/nginx/nginx.conf أضف ما يلي تحت http حاجز:
تشمل /etc/nginx/snippets/*.conf؛ أعد تشغيل Nginx لتطبيق التغييرات:
sudo systemctl reload nginx الخطوة 4: إعداد الوكيل العكسي لخدمة الواجهة الخلفية
إنشاء مضيف افتراضي
إنشاء ملف تكوين لخدمة الواجهة الخلفية الخاصة بك:
sudo nano /etc/nginx/sites-available/jellyfin مثال على التكوين لخادم الوسائط Jellyfin:
الخادم {استمع 80؛ اسم الخادم jelly.yourdomain.com؛ الموقع / {مسار الوكيل http://10.10.0.112:8096؛ يتضمن /etc/nginx/snippets/proxy.conf؛ } } تمكين الموقع عن طريق إنشاء رابط رمزي:
sudo ln -s /etc/nginx/sites-available/jellyfin /etc/nginx/sites-enabled/ اختبار وإعادة تحميل Nginx:
sudo nginx -t sudo systemctl reload nginx الخطوة 5: تأمين نطاقك باستخدام Let's Encrypt TLS
لتأمين نطاقك، استخدم Let's Encrypt لإصدار شهادات مجانية:
sudo certbot --nginx -d Jelly.yourdomain.com يقوم Certbot تلقائيًا بتكوين SSL في ملف موقع Nginx الخاص بك. لضمان تجديد الشهادات تلقائيًا، تأكد من تفعيل مؤقت systemd:
sudo systemctl list-timers | grep certbot الخطوة 6: دمج Cloudflare لمزيد من الأمان وتجاوز منفذ مزود خدمة الإنترنت
تثبيت Cloudflared
يقوم Cloudflared بإنشاء نفق آمن لتوجيه حركة المرور عبر Cloudflare، متجاوزًا قيود مزود خدمة الإنترنت على المنفذين 80 و443:
- تنزيل
.debالحزمة من صفحة GitHub الخاصة بـ Cloudflare. - تثبيت الحزمة:
sudo dpkg -i cloudflared-version.deb
تكوين نفق
قم بالمصادقة باستخدام حساب Cloudflare الخاص بك:
تسجيل الدخول إلى نفق CloudFlared إنشاء نفق جديد:
إنشاء نفق Cloudflared تعديل ملف تكوين Cloudflare:
سودو نانو /etc/cloudflared/config.yml مثال على التكوين:
النفق: ملف بيانات اعتماد my-tunnel: /home/user/.cloudflared/my-tunnel.json الدخول: - اسم المضيف: jelly.yourdomain.com الخدمة: http://localhost:8096 - الخدمة: http_status:404 بدء تشغيل خدمة النفق وتمكينها:
sudo systemctl تمكين cloudflared sudo systemctl بدء cloudflared النقاط الرئيسية
- وكيل Nginx العكسي:ضروري لتوجيه حركة المرور بشكل آمن وتحسين الخدمات الخلفية.
- تشفير TLS:استخدم Let's Encrypt لتأمين نطاقاتك باستخدام شهادات SSL المجانية.
- قواعد جدار الحماية:افتح المنافذ الضرورية لـ HTTP (80)، وHTTPS (443)، وSSH (22).
- تحسين الأمان:تنفيذ الرؤوس والحد من المعدلات لمنع الهجمات.
- تكامل كلاود فلير:استخدم أنفاق Cloudflared للحصول على استضافة آمنة وصديقة لمزودي خدمة الإنترنت.
- التشغيل الآلي:تضمن مؤقتات Systemd تجديد شهادات SSL تلقائيًا.
خاتمة
يتطلب إعداد وكيل عكسي آمن لـ Nginx دقةً في التفاصيل وتكوينًا دقيقًا، لكن النتيجة تستحق الجهد المبذول. سواءً كنت تستضيف خوادم وسائط مثل Jellyfin أو تدير تطبيقات مؤسسية، فإن هذا الدليل يزودك بالأدوات والمعرفة اللازمة لبناء بيئة عالية الأمان والكفاءة. بفضل ميزات مثل TLS وأنفاق Cloudflare والتحسينات المتقدمة، ستكون بنيتك التحتية جاهزة لتلبية المتطلبات الحديثة.
المصدر: "توقف عن كشف تطبيقاتك! أنشئ وكيل Nginx عكسي آمن!" - KeepItTechie، يوتيوب، ١٩ أغسطس ٢٠٢٥ - https://www.youtube.com/watch?v=MzbhS2S7H_g
الاستخدام: مُضمّن للرجوع إليه. اقتباسات موجزة للتعليق/المراجعة.