وكيل nginx
عندما يحتاج webman إلى توفير الوصول المباشر من الإنترنت، يُنصح بإضافة وكيل nginx أمام webman، حيث أن لذلك فوائد عديدة.
- معالجة الموارد الثابتة بواسطة nginx، مما يتيح لـ webman التركيز على معالجة المنطق التجاري
- السماح لعدة webman بمشاركة المنفذ 80 و 443، من خلال تمييز المواقع المختلفة باستخدام أسماء النطاق، مما يحولها إلى نشر عدة مواقع على خادم واحد
- القدرة على تحقيق التعايش بين php-fpm و webman
- تنفيذ SSL عبر وكيل nginx لتحسين https، مما يجعله أكثر بساطة وكفاءة
- القدرة على تصفية صارمة لبعض الطلبات غير القانونية من الإنترنت
مثال على وكيل nginx
upstream webman {
server 127.0.0.1:8787;
keepalive 10240;
}
server {
server_name اسم_نطاق_الموقع;
listen 80;
access_log off;
# انتبه، يجب أن يكون هذا في دليل public الخاص بـ webman، وليس في الجذر
root /your/webman/public;
location ^~ / {
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Real-IP $remote_addr;
proxy_http_version 1.1;
proxy_set_header Connection "";
if (!-e $request_filename){
proxy_pass http://webman;
}
}
# رفض الوصول إلى جميع الملفات التي تنتهي بـ .php
location ~ \.php$ {
return 404;
}
# السماح بالوصول إلى دليل .well-known
location ~ ^/\.well-known/ {
allow all;
}
# رفض الوصول إلى جميع الملفات أو الأدلة التي تبدأ بـ .
location ~ /\. {
return 404;
}
}
بشكل عام، يحتاج المطورون إلى ضبط server_name و root بالقيم الفعلية فقط، ولا حاجة لتكوين الحقول الأخرى.
تنبيه
من المهم جدًا أن يتم تعيين خيار root إلى دليل public الخاص بـ webman، ولا يتم تعيينه مباشرة إلى دليل webman، وإلا فقد يتمكن الزوار من الإنترنت من تنزيل جميع ملفاتك، بما في ذلك ملفات التكوين الحساسة مثل قاعدة البيانات.