وحدة Nginx sysguard
يصف هذا المستند الإصدار nginx-module-sysguard v0.1.0
الذي تم إصداره في 23 فبراير 2017.
لم يتم اختبار الإصدارات السابقة.
shell> git clone git://github.com/vozlt/nginx-module-sysguard.git
--add-module=/path/to/nginx-module-sysguard
بناء ثنائي nginx.
قم بتثبيت ثنائي nginx.
http {
...
server {
...
sysguard on;
sysguard_mode or;
sysguard_load load=10.5 action=/loadlimit;
sysguard_mem swapratio=20% action=/swaplimit;
sysguard_mem free=100M action=/freelimit;
sysguard_rt rt=0.01 period=5s method=AMM:10 action=/rtlimit;
location /loadlimit {
return 503 ;
}
location /swaplimit {
return 503 ;
}
location /freelimit {
return 503 ;
}
location /rtlimit {
return 503 ;
}
}
...
server {
...
location /api {
sysguard on;
sysguard_mode or;
sysguard_load load=20 action=/limit;
sysguard_mem swapratio=10% action=/limit;
sysguard_rt rt=2.01 period=5s method=WMA:10 action=/limit;
...
}
location /images {
sysguard on;
sysguard_mode and;
sysguard_load load=20 action=/limit;
sysguard_mem swapratio=10% action=/limit;
sysguard_rt rt=2.01 period=5s method=WMA:10 action=/limit;
...
}
location /limit {
return 503 ;
}
}
}
يمكن استخدام هذه الوحدة لحماية الخادم الخاص بك في حالة تحميل النظام، أو زيادة استخدام الذاكرة أو الاستجابة للطلبات ببطء شديد. هذه نسخة منقولة من sysguard في Tengine إلى NGINX النقي وذلك لدعم نفس الميزات.
Caveats:
لاحظ أن هذه الوحدة تتطلب استدعاء النظام sysinfo(2) أو وظيفة getloadavg(3) في glibc. كما يتطلب أيضًا نظام الملفات /proc للحصول على معلومات الذاكرة.
يتم توفير المتغيرات المضمنة التالية:
$sysguard_load
هي 100، فسيكون التحميل 0.1(100/1000). (/ ميللي ثانية)$sysguard_rt
هي 100، فسيكون وقت الاستجابة 0.1 ثانية (100/1000). (/ ميللي ثانية)- | - |
---|---|
بناء الجملة | حارس النظام <تشغيل|إيقاف> |
تقصير | عن |
سياق | http، الخادم، الموقع |
Description:
تمكين أو تعطيل عمل الوحدة.
- | - |
---|---|
بناء الجملة | تحميل sysguard_load = الرقم [الإجراء= /url ] |
تقصير | - |
سياق | http، الخادم، الموقع |
Description:
تحديد حد التحميل. عندما يتجاوز تحميل النظام هذا الحد، ستتم إعادة توجيه جميع الطلبات اللاحقة إلى عنوان URL المحدد بواسطة المعلمة "الإجراء". سيُرجع 503 إذا لم يتم تحديد عنوان URL "للإجراء". يدعم هذا التوجيه أيضًا استخدام ncpuratio بدلاً من الحد الثابت، ويعني "ncpu" عدد مراكز وحدة المعالجة المركزية، ويمكنك استخدام هذا التوجيه على النحو التالي:load=ncpu1.5
- | - |
---|---|
بناء الجملة | sysguard_mem Swapratio = النسبة % مجانًا = الحجم [الإجراء= /url ] |
تقصير | - |
سياق | http، الخادم، الموقع |
Description:
حدد ذاكرة المبادلة المستخدمة أو عتبة الذاكرة الخالية. عندما تتجاوز نسبة استخدام ذاكرة المبادلة هذا الحد أو عندما تكون الذاكرة الخالية أقل من الحجم، ستتم إعادة توجيه جميع الطلبات اللاحقة إلى عنوان URL المحدد بواسطة معلمة "الإجراء". سيُرجع 503 إذا لم يكن هناك عنوان URL "للإجراء". يستخدم Sysguard هذه الإستراتيجية لحساب الذاكرة الخالية: "memfree = free + buffered +ذاكرة التخزين المؤقت"
- | - |
---|---|
بناء الجملة | sysguard_rt rt= الفترة الثانية = الوقت [method= |
تقصير | - |
سياق | http، الخادم، الموقع |
Description:
تحديد عتبة وقت الاستجابة. يتم استخدام المعلمة rt لتعيين عتبة متوسط وقت الاستجابة بالثانية. يتم استخدام فترة المعلمة لتحديد فترة دورة الإحصائيات. إذا تجاوز متوسط وقت استجابة النظام الحد الذي حدده المستخدم، فستتم إعادة توجيه الطلب الوارد إلى عنوان URL محدد يتم تعريفه بواسطة المعلمة "إجراء". إذا لم يتم تقديم "إجراء"، فسيتم الرد على الطلب بخطأ 503 مباشرةً. method
عبارة عن صيغة تحسب متوسط أوقات معالجة الاستجابة. number
الموجود في الطريقة هو عدد العينات لحساب المتوسط. تم تعيين الطريقة الافتراضية لتكون method=AMM:period
.
- | - |
---|---|
بناء الجملة | sysguard_mode |
تقصير | أو |
سياق | http، الخادم، الموقع |
Description:
إذا كان هناك أكثر من نوع واحد من أجهزة العرض، يتم استخدام هذا التوجيه لتحديد العلاقات بين جميع أجهزة العرض وهي: 'و' لجميع المطابقة و'أو' لأي مطابقة.
- | - |
---|---|
بناء الجملة | وقت sysguard_interval |
تقصير | 1 ثانية |
سياق | http، الخادم، الموقع |
Description:
حدد الفاصل الزمني لتحديث معلومات النظام لديك. القيمة الافتراضية هي ثانية واحدة، مما يعني أن sysguard يقوم بتحديث حالة الخادم مرة واحدة في الثانية.
- | - |
---|---|
بناء الجملة | sysguard_log_level <معلومات|إشعار|تحذير|خطأ> |
تقصير | خطأ |
سياق | http، الخادم، الموقع |
Description:
حدد مستوى السجل لـ sysguard.