إعداد Nginx Proxy Manager: بروكسي عكسي بواجهة ويب
تثبيت Nginx Proxy Manager عبر Docker، تجديد شهادات SSL تلقائياً، إضافة proxy host، قوائم الوصول، إعادة التوجيه، البث والمواقع المخصصة.
جدول المحتويات
إعداد Nginx Proxy Manager: بروكسي عكسي بواجهة ويب
Nginx Proxy Manager (NPM) هو أداة مفتوحة المصدر تتيح لك إدارة Nginx reverse proxy من خلال واجهة ويب سهلة الاستخدام. يمكنك إدارة شهادات SSL وتكوين proxy host والتحكم في الوصول دون الحاجة لسطر الأوامر.
ما هو Nginx Proxy Manager؟
الميزات الرئيسية:
- واجهة ويب: لوحة إدارة سهلة الاستخدام
- تجديد SSL تلقائي: SSL مجاني مع Let's Encrypt
- Proxy Hosts: تكوين البروكسي العكسي
- Redirection Hosts: إعادة توجيه URL
- Stream Hosts: توجيه منافذ TCP/UDP
- Access Lists: التحكم في الوصول حسب IP والمستخدم
- Custom Locations: كتل location مخصصة لـ Nginx
التثبيت عبر Docker
تكوين Docker Compose
# docker-compose.yml
version: '3.8'
services:
npm:
image: 'jc21/nginx-proxy-manager:latest'
container_name: nginx-proxy-manager
restart: unless-stopped
ports:
- '80:80'
- '443:443'
- '81:81'
volumes:
- npm_data:/data
- npm_letsencrypt:/etc/letsencrypt
environment:
- TZ=Asia/Riyadh
volumes:
npm_data:
npm_letsencrypt:
docker compose up -d
docker ps | grep nginx-proxy-manager
تسجيل الدخول الأول
http://عنوان_IP_الخادم:81
بيانات الدخول الافتراضية:
البريد: admin@example.com
كلمة المرور: changeme
سيُطلب منك تغيير كلمة المرور والبريد الإلكتروني عند أول تسجيل دخول.
إضافة Proxy Host
Proxy Host أساسي
- Proxy Hosts → Add Proxy Host
- Domain Names:
app.example.com - Scheme:
http - Forward Hostname / IP:
192.168.1.10 - Forward Port:
3000 - Block Common Exploits: تفعيل
- Websockets Support: تفعيل لتطبيقات WebSocket
إضافة شهادة SSL
- SSL Certificate: Request a new SSL Certificate
- Force SSL: تفعيل
- HTTP/2 Support: تفعيل
- HSTS Enabled: تفعيل
- Save
البروكسي مع شبكة Docker
version: '3.8'
services:
npm:
image: 'jc21/nginx-proxy-manager:latest'
container_name: nginx-proxy-manager
restart: unless-stopped
ports:
- '80:80'
- '443:443'
- '81:81'
volumes:
- npm_data:/data
- npm_letsencrypt:/etc/letsencrypt
networks:
- proxy_network
webapp:
image: your-webapp:latest
container_name: webapp
expose:
- "3000"
networks:
- proxy_network
networks:
proxy_network:
driver: bridge
volumes:
npm_data:
npm_letsencrypt:
قوائم الوصول
التحكم في الوصول حسب IP
- Access Lists → Add Access List
- Name:
المسؤول فقط
في تبويب Access:
Allow: 192.168.1.0/24
Deny: all
مصادقة HTTP الأساسية
في تبويب Authorization:
اسم المستخدم: admin
كلمة المرور: كلمة_مرور_قوية123!
Redirection Host
- Redirection Hosts → Add Redirection Host
- Domain Names:
old.example.com - Forward Domain:
new.example.com - HTTP Code:
301 - Preserve Path: تفعيل
Stream Host (بروكسي TCP/UDP)
- Streams → Add Stream
- Incoming Port:
25565 - Forward Host:
192.168.1.50 - Forward Port:
25565 - TCP Forwarding: تفعيل
تكوين Nginx مخصص
تبويب Advanced
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;
client_max_body_size 100M;
proxy_connect_timeout 300;
proxy_send_timeout 300;
proxy_read_timeout 300;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
شهادة SSL Wildcard
- SSL Certificates → Add SSL Certificate
- Domain Names:
*.example.com - Use a DNS Challenge: تفعيل
- DNS Provider: Cloudflare، DigitalOcean، إلخ.
- Credentials: أدخل رمز API
النسخ الاحتياطي والاستعادة
# نسخ احتياطي لبيانات NPM
docker exec nginx-proxy-manager tar -czf /tmp/npm-backup.tar.gz /data /etc/letsencrypt
docker cp nginx-proxy-manager:/tmp/npm-backup.tar.gz ./npm-backup-$(date +%Y%m%d).tar.gz
# الاستعادة
docker cp ./npm-backup.tar.gz nginx-proxy-manager:/tmp/
docker exec nginx-proxy-manager tar -xzf /tmp/npm-backup.tar.gz -C /
docker restart nginx-proxy-manager
التحديث
docker compose pull
docker compose up -d
docker image prune -f
توصيات الأمان
ports:
- '80:80'
- '443:443'
- '127.0.0.1:81:81'
# الوصول عبر نفق SSH
ssh -L 81:localhost:81 user@server-ip
مع Nginx Proxy Manager على خوادم REXE، يمكنك إدارة جميع تطبيقات الويب من نقطة واحدة والحصول على شهادات SSL وتجديدها تلقائياً. تتيح واجهة الويب إعداد بروكسي عكسي احترافي دون التعامل مع ملفات تكوين Nginx.
مقالات ذات صلة
أدوات مراقبة الخوادم: Grafana و Prometheus و Netdata
إعداد حزمة Prometheus + Grafana، Netdata، node_exporter، قواعد التنبيه، إنشاء لوحات المعلومات ومراقبة مقاييس الخادم.
إعداد خادم البروكسي: دليل Squid و HAProxy
Squid forward proxy، HAProxy موازن الأحمال، إنهاء SSL، قواعد ACL، التخزين المؤقت، فحوصات الصحة والتوافر العالي.
إعداد CrowdSec: محرك أمان مدعوم من المجتمع
تثبيت CrowdSec، تكوين bouncer، كشف الهجمات، حظر IP، لوحة المعلومات، إدارة المجموعات والسيناريوهات.