Update: 2026-08-08 14:12:15

This commit is contained in:
Hamza-Ayed
2026-08-08 14:12:15 +03:00
parent 8395436f23
commit b97a1fd587
+24 -4
View File
@@ -3,6 +3,21 @@
# /v2/main/... → خادم المدفوعات
# السوكيتات تُنشر مباشرة من حاوياتها (2020 / 3030) — لا تمر من هنا.
# ‏مُحلِّل أسماء دوكر المدمج. سببه عطل حقيقي دام أياماً:
#
# ‏nginx يترجم اسم الـ upstream المكتوب حرفياً في fastcgi_pass **مرة واحدة**
# ‏عند تحميل الإعدادات ثم يحتفظ بالعنوان إلى الأبد. وحين أُعيد إنشاء حاوية
# ‏php_food انتقلت من 172.24.0.9 إلى 172.24.0.10، بينما بقي nginx يطرق
# ‏العنوان القديم — فكل طلبات الطعام تردّ 502 «Connection refused»
# ‏والحاوية سليمة تماماً وسجلّها صامت لأن الطلبات لا تصلها أصلاً. تشخيصٌ
# ‏مضلِّل إلى أبعد حدّ: كل ما تفحصه يبدو صحيحاً.
#
# ‏العلاج: تمرير الوجهة عبر متغيّر. عندها يؤجّل nginx الترجمة إلى وقت
# ‏الطلب ويستعملُ هذا الـ resolver، فيلتقط أي عنوان جديد خلال 10 ثوانٍ.
# ‏فائدة ثانية: بالمتغيّر لا يسقط إقلاع nginx إذا كانت الحاوية الهدف
# ‏متوقفة — كان يرفض الإقلاع كلياً فيُسقط الموقع بأسره.
resolver 127.0.0.11 valid=10s ipv6=off;
server {
listen 80;
server_name _;
@@ -10,6 +25,11 @@ server {
index index.php index.html;
client_max_body_size 25m;
# ‏وجهات fpm كمتغيّرات — انظر تعليق الـ resolver أعلاه.
set $upstream_php php:9000;
set $upstream_php_food php_food:9000;
set $upstream_php_transit php_transit:9000;
# ‏عنوان العميل الحقيقي.
# ‏السلسلة هي: العميل ← nginx المضيف (CloudPanel) ← nginx الحاوية ← php-fpm،
# ‏فكان REMOTE_ADDR يصل إلى PHP دائماً كعنوان الوسيط (172.24.0.1). والنتيجة
@@ -35,7 +55,7 @@ server {
location ~ ^/backend/transit/.*\.php$ {
try_files $uri =404;
include fastcgi_params;
fastcgi_pass php_transit:9000;
fastcgi_pass $upstream_php_transit;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_read_timeout 60s;
fastcgi_buffers 16 16k;
@@ -47,7 +67,7 @@ server {
location ~ ^/backend/food/.*\.php$ {
try_files $uri =404;
include fastcgi_params;
fastcgi_pass php_food:9000;
fastcgi_pass $upstream_php_food;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_read_timeout 60s;
fastcgi_buffers 16 16k;
@@ -57,7 +77,7 @@ server {
location ~ \.php$ {
try_files $uri =404;
include fastcgi_params;
fastcgi_pass php:9000;
fastcgi_pass $upstream_php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_read_timeout 60s;
fastcgi_buffers 16 16k;
@@ -70,7 +90,7 @@ server {
allow 127.0.0.1;
deny all;
include fastcgi_params;
fastcgi_pass php:9000;
fastcgi_pass $upstream_php;
fastcgi_param SCRIPT_NAME /status;
fastcgi_param SCRIPT_FILENAME /status;
}