دليل إعدادات Nginx السريع
جدول موجز لقطعة التكوين الشائعة لـ Nginx، للعثور السريع ونسخ كود التكوين
تلقائي تعيين عدد عمليات العمل (عادة يساوي عدد نوى المعالج)
worker_processes auto;
تعيين الحد الأقصى لعدد الاتصالات لكل عملية عمل
events {
worker_connections 1024;
}تضمين تكوين أنواع MIME
include /etc/nginx/mime.types; default_type application/octet-stream;
تمكين نقل الملفات بكفاءة
sendfile on; tcp_nopush on; tcp_nodelay on;
تعيين وقت انتهاء الاتصال الطويل
keepalive_timeout 65;
تعيين الحد الأقصى لحجم جسم الطلب من العميل
client_max_body_size 100M;
إخفاء رقم إصدار Nginx
server_tokens off;
تكوين كتلة Server الأساسية
server {
listen 80;
server_name example.com;
root /var/www/html;
index index.html;
}تكوين عدة نطاقات
server_name example.com www.example.com;
تكوين نطاقات عامة
server_name *.example.com;
تعيين الخادم الافتراضي
listen 80 default_server;
مراقبة عنوان IPv6
listen [::]:80;
تعيين الدليل الجذر أو التسمية البديلة
root /var/www/html; # أو استخدام alias alias /var/www/files/;
مطابقة دقيقة للمسار
location = /path {
# مطابقة دقيقة
}مطابقة بادئة للمسار
location /api/ {
# مطابقة بادئة
}مطابقة التعبيرات النمطية
location ~ \.php$ {
# مطابقة منتظمة (حساسة لحالة الأحرف)
}مطابقة منتظمة غير حساسة لحالة الأحرف
location ~* \.\(jpg|jpeg|png|gif)$ {
# مطابقة منتظمة (غير حساسة لحالة الأحرف)
}تطابق البادئة الأولوية (أعلى من التعبيرات النمطية)
location ^~ /images/ {\n # تطابق البادئة الأولوية\n}ترتيب محاولة الملفات (شائع في تطبيقات SPA)
location / {\n try_files $uri $uri/ /index.html;\n}يُسمح بالوصول فقط من الطلبات الداخلية
location /internal/ {\n internal;\n}تكوين بسيط للوكلاء العكسيين
location /api/ {\n proxy_pass http://backend:3000/;\n}تعيين رؤوس طلب الوكيل
proxy_set_header Host $host;\nproxy_set_header X-Real-IP $remote_addr;\nproxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;\nproxy_set_header X-Forwarded-Proto $scheme;
تكوين وكيل WebSocket
location /ws/ {\n proxy_pass http://backend:3000/;\n proxy_http_version 1.1;\n proxy_set_header Upgrade $http_upgrade;\n proxy_set_header Connection "upgrade";\n}تحديد مجموعة الخوادم العلوية
upstream backend {\n server 127.0.0.1:3000;\n server 127.0.0.1:3001;\n keepalive 32;\n}تكوين توازن التحميل
upstream backend {\n least_conn; # أو ip_hash;\n server 127.0.0.1:3000;\n server 127.0.0.1:3001;\n}إعدادات تجاوز الوقت للوكلاء
proxy_connect_timeout 60s;\nproxy_send_timeout 60s;\nproxy_read_timeout 60s;
تكوين مخزن الذاكرة المؤقتة للوكلاء
proxy_buffering on;\nproxy_buffer_size 4k;\nproxy_buffers 8 4k;
تكوين SSL الأساسي
server {\n listen 443 ssl http2;\n ssl_certificate /path/to/cert.pem;\n ssl_certificate_key /path/to/key.pem;\n}تعيين إصدارات بروتوكول SSL
ssl_protocols TLSv1.2 TLSv1.3;
تعيين مجموعات التشفير
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256;\nssl_prefer_server_ciphers on;
مخبأ جلسة SSL
ssl_session_cache shared:SSL:10m;\nssl_session_timeout 1d;
إعادة توجيه HTTP إلى HTTPS
server {\n listen 80;\n server_name example.com;\n return 301 https://$server_name$request_uri;\n}تمكين HSTS
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
تمكين OCSP Stapling
ssl_stapling on;\nssl_stapling_verify on;\nresolver 8.8.8.8 8.8.4.4 valid=300s;
تخزين الموارد الثابتة في الذاكرة المؤقتة
location ~* \\.\\.(css|js|jpg|jpeg|png|gif|ico|svg|woff|woff2)$ {\n expires 30d;\n add_header Cache-Control "public, immutable";\n}تعطيل التخزين المؤقت
location /api/ {\n add_header Cache-Control "no-store, no-cache, must-revalidate";\n}تكوين التخزين المؤقت للوكلاء
proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=my_cache:10m max_size=1g;\n\nlocation / {\n proxy_cache my_cache;\n proxy_cache_valid 200 1d;\n}تمكين ETag
etag on;
تمكين طلبات شرطية
if_modified_since before;
تكوين ضغط Gzip الأساسي
gzip on;\ngzip_vary on;\ngzip_min_length 1024;\ngzip_comp_level 6;\ngzip_types text/plain text/css text/xml text/javascript application/javascript application/json application/xml;
تعيين أنواع MIME للضغط
gzip_types text/plain text/css text/xml text/javascript application/javascript application/json application/xml;
تمكين الضغط للطلبات المُجدولة
gzip_proxied any;
تمكين الملفات المضغوطة مسبقًا
gzip_static on;
تكوين CORS عبر المجالات
add_header Access-Control-Allow-Origin *; add_header Access-Control-Allow-Methods "GET, POST, OPTIONS"; add_header Access-Control-Allow-Headers "DNT,User-Agent,X-Requested-With,Content-Type";
حماية من XSS وحيل النقر
add_header X-XSS-Protection "1; mode=block"; add_header X-Content-Type-Options nosniff; add_header X-Frame-Options SAMEORIGIN;
استراتيجية الأمان المحتوى
add_header Content-Security-Policy "default-src 'self'; script-src 'self' 'unsafe-inline'";
تقييد معدل الطلبات
limit_req_zone $binary_remote_addr zone=one:10m rate=10r/s;
location /api/ {
limit_req zone=one burst=20 nodelay;
}منع الوصول إلى الملفات المخفية
location ~ /\. {
deny all;
}قائمة بيضاء للعناوين IP
location /admin/ {
allow 192.168.1.0/24;
deny all;
}تكوين سجلات الوصول
access_log /var/log/nginx/access.log;
تكوين سجلات الأخطاء
error_log /var/log/nginx/error.log warn;
تنسيق سجل مخصص
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
"$http_user_agent" "$http_x_forwarded_for"';سجلات بتنسيق JSON
log_format json escape=json '{"time":"$time_iso8601","ip":"$remote_addr","method":"$request_method","uri":"$uri","status":$status}';تعطيل سجلات الوصول
access_log off;
سجلات شرطية (تسجيل الأخطاء فقط)
map $status $loggable {
~^[23] 0;
default 1;
}
access_log /var/log/nginx/access.log combined if=$loggable;ذاكرة التخزين المؤقت لdescriptor الملفات
open_file_cache max=1000 inactive=20s; open_file_cache_valid 30s; open_file_cache_min_uses 2;
تمكين قبول الاتصالات المتعددة و epoll
events {
multi_accept on;
use epoll;
}تخزين FastCGI المؤقت
fastcgi_cache_path /var/cache/nginx/fastcgi levels=1:2 keys_zone=fastcgi:10m;
location ~ \.php$ {
fastcgi_cache fastcgi;
fastcgi_cache_valid 200 1h;
}تقييد عدد الاتصالات
limit_conn_zone $binary_remote_addr zone=addr:10m; limit_conn addr 100;
تحسين التوقيتات
client_body_timeout 12; client_header_timeout 12; send_timeout 10;
📖مقدمة الأداة
الميزات
❓الأسئلة الشائعة
🔗أدوات ذات صلة
محلل تعبير كرون
تحقق من صحة بناء جملة كرون ومعاينة أوقات التنفيذ القادمة.
تحويل JSON إلى CSV
تحويل بيانات JSON إلى تنسيق CSV
JSON إلى YAML
تحويل بيانات JSON إلى تنسيق YAML
محول JSON إلى XML
تحويل بيانات JSON إلى تنسيق XML
YAML إلى JSON
تحويل إعدادات YAML إلى بيانات بتنسيق JSON
منسّق JSON
تنسيق، والتحقق وضغط بيانات JSON
تصور JSON
عرض بيانات JSON كهيكل شجري
مولد بيانات JSON
إنشاء بيانات JSON محاكاة للاختبار
مُترجم JSON لـ i18n
ترجمة كاملة لملف JSON اللغوي مرة واحدة. الصق المحتوى الأساسي لديك، واختر اللغة الهدف، ستستخدم الأداة مفاتيح مسطحة لاستدعاء واجهة OpenRouter API.
مقارنة فروق JSON
مقارنة الفروق بين بيانات JSON لاثنين
مولّد رمز الاستجابة السريعة (QR)
إنشاء صورة QR مخصصة
إنشاء صورة موضعية SVG مخصصة
العرض
محول Base64 للصور
أداة تحويل الصور إلى Base64 والعكس
مولد UUID
توليد دفعي لمعرفات UUID فريدة
مولّد كلمات المرور
توليد كلمات مرور عشوائية آمنة وموثوقة.
تشفير/فك تشفير Base64
أداة ترميز وفك ترميز سلاسل Base64
ترميز/فك ترميز URL
أداة ترميز وفك ترميز لسلاسل URL
مولّد هاش MD5
أداة توليد هاش MD5
مولّد هاش SHA256
أداة توليد قيمة هاش SHA256
مولّد هاش SHA1
أداة توليد قيمة هاشSHA1
أداة ترميز/فك ترميز Hex
أداة ترميز/فك ترميز لسلاسل الست عشرية
محوِّل ترميز وفك ترميز ثنائي
أداة ترميز وفك ترميز السلاسل الثنائية
أداة تشفير وفك تشفير AES
أداة تشفير/فك تشفير باستخدام خوارزمية AES المتماثلة
أداة تشفير وفك تشفير RSA.
أداة RSA غير متماثلة
مولد HMAC
أداة توليد HMAC لرمز المصادقة
استعلام عنوان IP
الحصول على الموقع الجغرافي ومعلومات الشبكة لعنوان IP
محول الزمن بالميلي ثانية
التحويل بين طابع الزمن بالميلي ثانية والسلسلة yyyy-MM-dd HH:mm:ss.