هنا نقوم بانشاء او التعديل على ملف الاعدادات الخاص بانجينكس ويب سيرفر و يمكن تشغيله كسيرفر خاص او سيرفر بروكسى عكسى
/etc/nginx/conf.d/ nano example.conf
الاعدادات بالاسفل لتوجيه الريكوستات الاتيه من الموقع للكونتينرات باسمها المتواجدة فى شكبة واحدة و التحدث مع بعضها مع مراعاة عدم الاعتماد على الشبكة الخاصة بالدوكر وانشاء شبكة خاصة ,كونيكت الكونتينرات مع بعضها على الشبكة الجديدة ليقوموا بالتحدث مع بعضهم بالاسم دون الحاجة الى الاى بى
server {
listen 80;
server_name example.com www.example.com;
location / {
proxy_pass http://example;
}
}
server {
listen 80;
server_name example.com;
location / {
proxy_pass http:// any where and not forget
nginx -t before exit container;
}
}
هنا الاعدادات الكاملة مع الشهادات
/etc/nginx/conf.d/test.conf
server {
listen 80;
server_name test.example.com;
# إعدادات الخادم للطلبات الواردة على المنفذ 80 (HTTP)
# التوجيه المباشر لصفحة الخطأ 404
location / {
error_page 404 /404.html;
return 404;
}
}
server {
listen 443 ssl;
server_name test.example.com;
# إعدادات الخادم للطلبات الواردة على المنفذ 443 (HTTPS)
# مسار الشهادة والمفتاح الخاص لتفعيل SSL
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
# إعدادات SSL
ssl_protocols TLSv1.3;
ssl_prefer_server_ciphers on;
ssl_ciphers 'TLS_AES_128_GCM_SHA256:TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256';
ssl_session_timeout 1d;
ssl_session_cache shared:SSL:10m;
ssl_session_tickets on;
# إضافة الهيدرات الأمانية
add_header X-Frame-Options "SAMEORIGIN" always;
add_header X-XSS-Protection "1; mode=block" always;
add_header X-Content-Type-Options "nosniff" always;
add_header Referrer-Policy "strict-origin-when-cross-origin" always;
add_header Content-Security-Policy "default-src 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval'; style-src 'self' 'unsafe-inline'; img-src 'self' data:; font-src 'self'; frame-src 'self'; object-src 'none'; base-uri 'self'; form-action 'self'; frame-ancestors 'self';" always;
# تفعيل HSTS (HTTP Strict Transport Security)
add_header Strict-Transport-Security "max-age=31536000; includeSubdomains; preload" always;
ssl_stapling on;
ssl_stapling_verify on;
# التوجيه إلى الـ webapp باستخدام الـ proxy
location / {
proxy_pass http://webapp;
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;
}
# صفحة الخطأ المخصصة للأخطاء 404
error_page 404 /404.html;
}
الاعدادات الكاملة بالشهادات للموقع الاساسى
/etc/nginx/conf.d/main.conf
server {
listen 80;
server_name mido.vpn.com cloud.dns.com;
# إعدادات الخادم للطلبات الواردة على المنفذ 80 (HTTP)
# التوجيه المباشر لصفحة الخطأ 404
location / {
error_page 404 /404.html;
return 404;
}
}
server {
listen 80;
server_name example.com www.example.com;
# إعدادات الخادم للطلبات الواردة على المنفذ 80 (HTTP)
# التوجيه إلى HTTPS
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
server_name example.com www.example.com;
# إعدادات الخادم للطلبات الواردة على المنفذ 443 (HTTPS)
# مسار الشهادة والمفتاح الخاص لتفعيل SSL
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
# إعدادات SSL
ssl_protocols TLSv1.3;
ssl_prefer_server_ciphers on;
ssl_ciphers 'TLS_AES_128_GCM_SHA256:TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256';
ssl_session_timeout 1d;
ssl_session_cache shared:SSL:10m;
ssl_session_tickets on;
# إضافة الهيدرات الأمانية
add_header X-Frame-Options "SAMEORIGIN" always;
add_header X-XSS-Protection "1; mode=block" always;
add_header X-Content-Type-Options "nosniff" always;
add_header Referrer-Policy "strict-origin-when-cross-origin" always;
add_header Content-Security-Policy "default-src 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval'; style-src 'self' 'unsafe-inline'; img-src 'self' data:; font-src 'self'; frame-src 'self'; object-src 'none'; base-uri 'self'; form-action 'self'; frame-ancestors 'self';" always;
# تفعيل HSTS (HTTP Strict Transport Security)
add_header Strict-Transport-Security "max-age=31536000; includeSubdomains; preload" always;
ssl_stapling on;
ssl_stapling_verify on;
# التوجيه إلى الـ webapp باستخدام الـ proxy
location / {
proxy_pass http://webapp;
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;
}
# صفحة الخطأ المخصصة للأخطاء 404
error_page 404 /404.html;
# صفحة الخطأ المخصصة للأخطاء الخادم (5xx)
error_page 500 502 503 504 /usr/share/nginx/html/50x.html;
}
لاختبار الاعدادات فى ملف الاعدادات لمعرفة هل الاعدادات لها خطا ام لا
-
-