Nginx

AWS Amazon ELB 健康檢查的 Nginx 解決方案 - 返回 200 沒有 IF

  • January 5, 2017

我有以下程式碼在 Nginx 上執行,以使 AWS ELB 執行狀況檢查滿意。

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

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

我知道 Nginx 最好避免使用“IF”,我想問是否有人會知道如何在沒有“if”的情況下重新編碼?

謝謝你

不要把事情複雜化。只需將您的 ELB 健康檢查指向一個專門為他們準備的特殊 URL。

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

只是為了改進上述答案,這是正確的。以下效果很好:

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;
}

引用自:https://serverfault.com/questions/518220