एडब्ल्यूएस अमेज़ॅन ईएलबी हेल्थ चेक के लिए नगनेक्स सॉल्यूशन - आईएफ के बिना 200 लौटाएं


22

मेरे पास निम्न कोड है जो AWS ELB स्वास्थ्य देखभाल को खुश रखने के लिए Nginx पर काम कर रहा है।

map $http_user_agent $ignore {
  default 0;
  "ELB-HealthChecker/1.0" 1;
}

server {
  location / {
    if ($ignore) {
      access_log off;
      return 200;
    }
  }
}

मुझे पता है कि नगनेक्स के साथ 'आईएफ' को सबसे अधिक टाला जाता है और मैं यह पूछना चाहता था कि क्या किसी को पता होगा कि 'इफ' के बिना इसे फिर से कैसे बनाया जाए?

धन्यवाद

जवाबों:


62

चीजों को ओवरकम्प्लीट न करें। बस उनके लिए एक विशेष यूआरएल पर अपने ईएलबी स्वास्थ्य की जाँच करें।

server {
  location /elb-status {
    access_log off;
    return 200;
  }
}

थैंक्यू फॉर यू रिप्लाई ... क्या आप एक टच को और समझा सकते हैं ... वर्तमान में ईएलबी स्वास्थ्य जांच में मैं इसे /index.html पर इंगित कर रहा हूं। क्या आपके कहने का मतलब है कि स्वास्थ्य जांचों को '/ एल्ब-स्टेटस' कहें और उपरोक्त सर्वर ब्लॉक को जोड़ें? क्या यही है? क्या / एल्ब-स्टेटस url मौजूद होना चाहिए? thx फिर से
एडम

पूरी तरह से काम किया जब मैंने ईएलबी में ईएलबी-स्टेटस डाला और ऊपर सर्वर ब्लॉक को जोड़ा - थैंक्यू इतना !!! बहुत खुश
एडम

मैं खुशी से मदद कर सकता है!
सिजॉयज

1
हम्म, मैं मिल रहा हूँ "/usr/share/nginx/html/elb-status" failed (2: No such file or directory)... किसी भी विचार क्यों यह हो सकता है?
माइकल झरना

1
नीट समाधान। 😙
phegde

27

बस उपरोक्त उत्तर पर सुधार करना है, जो सही है। निम्नलिखित महान काम करता है:

location /elb-status {
    access_log off;
    return 200 'A-OK!';
    # because default content-type is application/octet-stream,
    # browser will offer to "save the file"...
    # the next line allows you to see it in the browser so you can test 
    add_header Content-Type text/plain;
}

5

अद्यतन: यदि उपयोगकर्ता एजेंट सत्यापन आवश्यक है,

set $block 1;

# Allow only the *.example.com hosts. 
if ($host ~* '^[a-z0-9]*\.example\.com$') {
   set $block 0;
}

# Allow all the ELB health check agents.
if ($http_user_agent ~* '^ELB-HealthChecker\/.*$') { 
  set $block 0;
}

if ($block = 1) { # block invalid requests
  return 444;
}

# Health check url
location /health {
  return 200 'OK';
  add_header Content-Type text/plain;
}
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.