قم بتشغيل مسبار Varnish على منفذ مختلف عن المنفذ الخلفي الرئيسي

StackOverflow https://stackoverflow.com//questions/25065009

سؤال

أنا أستخدم الورنيش لتحميل التوازن بين خادمين وقمت بإعداد مدير وواجهتين خلفيتين تقومان بذلك بنجاح.

مشكلتي هي أن الواجهتين الخلفيتين تعملان nginx على الميناء 80 قائمة ل my.domain.com.يقوم Nginx بعد ذلك بإعادة توجيه طلبي إلى عملية الاستماع على المنفذ 3000.عمليتي لها طريق يسمى /healthcheck الذي أود استخدامه لمسبار الواجهة الخلفية للورنيش.

هذا هو ما عندي حاليا .vcl يبدو الملف مثل:

backend b0 {
        .host = "53.243.15.198";
        .probe = { 
                .url = "/healthcheck";
                .timeout = 34 ms; 
                .interval = 1s; 
                .window = 10;
                .threshold = 8;
        }
}

لذلك إذا انتقلت إلى my.domain.com/healthcheck أحصل على 200 OK ولكن عندما يبدأ الورنيش الطلب nginx لا يلتقطه لأنه لم يعد مصدره my.domain.com.

لقد حاولت هذا على أساس هذه الوثائق لكنه لا يعمل:

 backend b0 {
            .host = "53.243.15.198";
            .probe = { 
                    .request =
                         "GET /healthcheck HTTP/1.1"
                         "Host: 53.243.15.198:3000"
                         "Connection: close";
                    .timeout = 34 ms; 
                    .interval = 1s; 
                    .window = 10;
                    .threshold = 8;
            }
    }

كيف يمكنني التحقق من صحة المثيلات الخاصة بي دون التعرض لهذه المشكلة؟أو بمعنى آخر هل هناك طريقة ما للاستعلام عن منفذ مختلف عن المنفذ الرئيسي للواجهة الخلفية؟

هل كانت مفيدة؟

المحلول

لا تزال بحاجة إلى إرسال الفحص الصحي إلى nginx.ومع ذلك، يجب أن تحتوي مجساتك على مضيف HTTP my.domain.com :

backend b0 {
        .host = "53.243.15.198";
        .host_header = "my.domain.com";
        .probe = { 
                .url = "/healthcheck";
                .timeout = 34 ms; 
                .interval = 1s; 
                .window = 10;
                .threshold = 8;
        }
}
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top