تدفق الدفء الصحي في المنبع (TCP/UDP/HTTP) ، وتوفير واجهة HTTP للحصول على حالة خادم عودة "
يمكن أن توفر هذه الوحدة NGINX عمليات فحص صحية خادم خلفية نشطة (تحقق من دعم أنواع TCP/UDP/HTTP).
git clone https://github.com/zhouchangxun/nginx/nginx.git git clone https://github.com/zhouchangxun
CD nginx/؛ GIT تطبيق ../ngx_stream_upstream_check_module/nginx-stable-1.12+.patch
./auto/configure-with-stream-add-module = ../ngx_stream_upstream_check_module/
جعل && التثبيت
stream {
upstream tcp - cluster {
# simple round-robin
server 192.168 .0 .1 : 22 ;
server 192.168 .0 . 2 : 22 ;
check interval = 3000 rise = 2 fall = 5 timeout = 5000 default_down = true type = tcp ;
}
upstream udp - cluster {
# simple round-robin
server 192.168 .0 .3 : 53 ;
server 192.168 .0 . 4 : 53 ;
check interval = 3000 rise = 2 fall = 5 timeout = 5000 default_down = true type = udp ;
}
upstream http - cluster {
# simple round-robin
server 192.168 .0 .5 : 80 ;
server 192.168 .0 . 6 : 80 ;
check interval = 3000 rise = 2 fall = 5 timeout = 5000 type = http ;
check_keepalive_requests 100 ;
check_http_send "HEAD / HTTP/1.1 r n Connection: keep-alive r n r n " ;
check_http_expect_alive http_2xx http_3xx ;
}
server {
listen 522 ;
proxy_pass tcp - cluster ;
}
server {
listen 53 ;
proxy_pass udp - cluster ;
}
server {
listen 8080 ;
proxy_pass http - cluster ;
}
}
http {
server {
listen 80 ;
location / status {
l4check_status ;
}
}
}بناء الجملة:
تحقق الفاصل الزمني = milliseconds [fall = count] [Rise = count] [timeout = milliseconds] [default_down = true | false] [type = tcp | udp | http] [port = check_port]
الافتراضي: الفاصل الزمني = 30000 Fall = 5 Rise = 2 timeout = 1000 default_down = true type = tcp
السياق: دفق/المنبع
يمكن لهذا الأمر تشغيل وظيفة الفحص الصحية لخادم الواجهة الخلفية.
الفاصل الزمني: الفاصل بين حزم الفحص الصحية المرسلة إلى الواجهة الخلفية.
Fall (Fall_Count): إذا وصل عدد الإخفاقات المتتالية إلى Fall_count ، فسيتم اعتبار الخادم أسفل.
RISE (RISE_COUNT): إذا وصل عدد النجاحات إلى RISE_COUNT ، فسيعتبر الخادم أعلى.
مهلة: مهلة طلب صحة الواجهة الخلفية.
Default_Down: يعين حالة الخادم في البداية. إذا كان هذا صحيحًا ، فهذا يعني أن الافتراضي قد انخفض. إذا كان كاذب ، فهذا أمر. القيمة الافتراضية صحيحة ، مما يعني أن الخادم يعتقد في البداية أنه غير متوفر ، وسيتم اعتباره صحية فقط بعد وصول حزمة الفحص الصحية إلى عدد معين من الأوقات الناجحة.
النوع: نوع حزمة الفحص الصحية ، يدعم الآن الأنواع التالية
المنفذ: حدد منفذ فحص خادم الخلفية. يمكنك تحديد منفذ خادم الواجهة الخلفية يختلف عن الخدمة الحقيقية. على سبيل المثال ، توفر الواجهة الخلفية للتطبيق مع المنفذ 443. يمكنك التحقق من حالة المنفذ 80 لتحديد الحالة الصحية للواجهة الخلفية. الافتراضي هو 0 ، مما يعني نفس المنفذ الذي يوفره خادم الخلفية.
بناء الجملة: check_keepalive_requests request_num
الافتراضي: 1
السياق: دفق/المنبع
يمكن لهذه التعليمات تكوين عدد الطلبات المرسلة بواسطة اتصال ، وقيمتها الافتراضية هي 1 ، مما يعني أن Nginx يغلق الاتصال بعد الانتهاء من طلب واحد.
بناء الجملة: check_http_send http_packet
افتراضي: "Get / http / 1.0 r n r n"
السياق: دفق/المنبع
يمكن لهذا التوجيه تكوين محتوى الطلب المرسلة بواسطة حزمة HTTP Health Check. من أجل تقليل كمية البيانات المرسلة ، يوصى باستخدام طريقة "الرأس".
عند استخدام اتصال طويل للفحص الصحي ، تحتاج إلى إضافة رأس طلب الاحتفاظ بهذا الأمر ، مثل: "Head / Http / 1.1 r nconnection: keep-alive r n r n". في الوقت نفسه ، عند استخدام طريقة "GET" ، يجب ألا يكون حجم URI المطلوب أكبر من اللازم لضمان أنه يمكن نقله في غضون فاصل واحد ، وإلا فسوف يعتبر خادمًا خلفيًا أو استثناءًا من الشبكة بواسطة وحدة الفحص الصحية.
بناء الجملة: check_http_expect_alive [http_2xx | http_3xx | http_4xx | http_5xx]
الافتراضي: http_2xx | http_3xx
السياق: دفق/المنبع
يحدد هذا التوجيه الحالة الناجحة لرد HTTP ، وعلى الافتراضي ، تعتبر حالة 2xx و 3xx صحية.
بناء الجملة : check_shm_size size
الافتراضي : 1M
Contex : دفق
يتم تخزين جميع حالات التحقق من خادم الخادم الخلفي في الذاكرة المشتركة ، ويمكن لهذه التعليمات ضبط حجم الذاكرة المشتركة. الافتراضي هو 1M. إذا كان لديك أكثر من 1000 خادم ولديك أخطاء أثناء التكوين ، فقد تحتاج إلى توسيع حجم الذاكرة.
بناء جملة: l4check_status [html | csv | json]
الافتراضي: l4check_status html
السياق: http/server/location