Nginx
نظرة عامة
في هذا الدليل سنستخدم Nginx كبروكسي عكسي للوصول إلى لوحة Remnawave. سنوجّه اسم النطاق إلى خادمنا، ونُصدر شهادة SSL، ونُعدّ Nginx.
تحتاج إلى امتلاك اسم نطاق مسجّل للمتابعة.
توجيه النطاق إلى خادمك
تحقق من عنوان IP الخاص بخادمك. من الأفضل استخدام عنوان IPv4 ثابت.
الآن، تحتاج إلى توجيه اسم نطاقك إلى هذا العنوان IP.
على سبيل المثال، سيكون my-super-panel.com -> 193.122.122.122.
هناك طريقتان للقيام بذلك:
- استخدام مزوّد DNS (مثل Cloudflare، Google Cloud، إلخ.)
- استخدام مسجّل النطاق (مثل Namecheap، إلخ.)
مزوّد DNS
إذا كنت تستخدم Cloudflare، فتحتاج إلى إضافة سجل A/AAAA (لـ IPv4 وIPv6 على التوالي) إلى سجلات DNS الخاصة بك.
سجّل الدخول إلى حساب Cloudflare الخاص بك هنا وحدد النطاق المطلوب.
على الجانب الأيسر من الصفحة، انقر على DNS ثم انقر على Records. انقر على Create record.
اضبط Type على A وName على @.
إذا كنت تريد استخدام نطاقات فرعية، يجب إدخال اسم النطاق الفرعي (مثل panel) في حقل Name.
أدخل عنوان IP الخاص بخادمك في حقل IPv4 address وانقر على Save.
الآن تحتاج إلى الانتظار قليلاً حتى يتم تحديث سجلات DNS.
هناك فرق كبير بين السحابة الصفراء (النطاق يمر عبر وكيل Cloudflare) والسحابة الرمادية (النطاق لا يمر عبر وكيل Cloudflare) في لوحة تحكم Cloudflare.
إذا كان Cloudflare يعمل بشكل جيد في منطقتك، فمن الأفضل توجيه النطاق من خلال Cloudflare. (السحابة الصفراء)

بعض مزودي DNS لديهم واجهة مختلفة، لكن العملية العامة هي نفسها.
إصدار شهادة SSL
تحتاج الآن إلى إصدار شهادة SSL. أسهل طريقة هي استخدام acme.sh.
يغطي هذا الدليل إصدار شهادة SSL لنطاق اللوحة فقط.
تثبيت التبعيات
sudo apt-get install cron socat
تثبيت acme.sh
يمكنك استخدام أي عنوان بريد إلكتروني لإصدار الشهادة، لكن يُنصح باستخدام عنوان صالح.
استبدل EMAIL بعنوان بريدك الإلكتروني.
curl https://get.acme.sh | sh -s email=EMAIL && source ~/.bashrc
إنشاء مجلد للشهادات
mkdir -p /opt/remnawave/nginx && cd /opt/remnawave/nginx
إصدار الشهادة
استبدل DOMAIN باسم النطاق الذي تريد إصدار شهادة له.
لا تستخدم مناطق النطاقات: .ru، .su، .рф. لا تدعم ZeroSSL هذه المناطق حالياً.
acme.sh --issue --standalone -d 'DOMAIN' --key-file /opt/remnawave/nginx/privkey.key --fullchain-file /opt/remnawave/nginx/fullchain.pem --alpn --tlsport 8443 --reloadcmd "docker exec remnawave-nginx nginx -s reload"
تأكد من أن المنفذ 8443 مفتوح على خادمك. هو مطلوب لإصدار الشهادة.

acme.sh --install-cert -d 'DOMAIN' --key-file /opt/remnawave/nginx/privkey.key --fullchain-file /opt/remnawave/nginx/fullchain.pem --reloadcmd "docker exec remnawave-nginx nginx -s reload"
هذا يُظهر أن الشهادة صدرت. سيتولى acme.sh تجديد الشهادة تلقائياً كل 60 يوماً، فقط تأكد من أن المنفذ 8443 مفتوح (وغير مشغول) على خادمك.
إعداد Nginx
الإعداد البسيط
أنشئ ملفاً باسم nginx.conf في المجلد /opt/remnawave/nginx.
cd /opt/remnawave/nginx && nano nginx.conf
الصق الإعداد التالي.
يُرجى استبدال REPLACE_WITH_YOUR_DOMAIN باسم نطاقك.
راجع الإعداد أدناه، ابحث عن الأسطر المميّزة باللون الأحمر.
upstream remnawave {
server remnawave:3000;
}
server {
server_name REPLACE_WITH_YOUR_DOMAIN;
listen 443 ssl reuseport;
listen [::]:443 ssl reuseport;
http2 on;
location / {
proxy_http_version 1.1;
proxy_pass http://remnawave;
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;
}
# SSL Configuration (Mozilla Intermediate Guidelines)
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-CHACHA20-POLY1305;
ssl_session_timeout 1d;
ssl_session_cache shared:MozSSL:10m;
ssl_session_tickets off;
ssl_certificate "/etc/nginx/ssl/fullchain.pem";
ssl_certificate_key "/etc/nginx/ssl/privkey.key";
ssl_trusted_certificate "/etc/nginx/ssl/fullchain.pem";
ssl_stapling on;
ssl_stapling_verify on;
resolver 1.1.1.1 1.0.0.1 8.8.8.8 8.8.4.4 208.67.222.222 208.67.220.220 valid=60s;
resolver_timeout 2s;
# Gzip Compression
gzip on;
gzip_vary on;
gzip_proxied any;
gzip_comp_level 6;
gzip_buffers 16 8k;
gzip_http_version 1.1;
gzip_min_length 256;
gzip_types
application/atom+xml
application/geo+json
application/javascript
application/x-javascript
application/json
application/ld+json
application/manifest+json
application/rdf+xml
application/rss+xml
application/xhtml+xml
application/xml
font/eot
font/otf
font/ttf
image/svg+xml
text/css
text/javascript
text/plain
text/xml;
}
server {
listen 443 ssl default_server;
listen [::]:443 ssl default_server;
server_name _;
ssl_reject_handshake on;
}
إنشاء docker-compose.yml
أنشئ ملف docker-compose.yml في المجلد /opt/remnawave/nginx.
cd /opt/remnawave/nginx && nano docker-compose.yml
الصق الإعداد التالي.
services:
remnawave-nginx:
image: nginx:1.28
container_name: remnawave-nginx
hostname: remnawave-nginx
volumes:
- ./nginx.conf:/etc/nginx/conf.d/default.conf:ro
- ./fullchain.pem:/etc/nginx/ssl/fullchain.pem:ro
- ./privkey.key:/etc/nginx/ssl/privkey.key:ro
restart: always
ports:
- '0.0.0.0:443:443'
networks:
- remnawave-network
networks:
remnawave-network:
name: remnawave-network
driver: bridge
external: true
تشغيل الحاوية
docker compose up -d && docker compose logs -f -t
افتح اللوحة في المتصفح
افتح اسم النطاق المُعدَّ في المتصفح وستظهر لك صفحة تسجيل الدخول.
