Edited at

ELBなどのヘルスチェックのためにチェック用のファイルを用意しない(nginx)

More than 3 years have passed since last update.


前書き

ELBへのヘルスチェック先の準備をしていて、「ファイル管理するの面倒だなー」と思っていた際に試してみてうまくいったことのメモ。


本題

以前からnginxでのIP制限などで403を返させるための設定でreturn 403;を使えばいいという部分は知っていたのですが、「あれステータスコード何でも返せるんじゃね?」と思って書いてみたのが以下の設定


対HealthCheck用

server {

listen 80 default_server;
server_name _;

access_log off;

location / {
return 200;
}
}


要点としては、



  • listen時にdefault_serverを指定しているので、ヘルスチェックにありがちなIPアドレス指定のリクエストの受け皿になる


  • access_log none; を指定しているので、わりかしどうでもいいヘルスチェックのアクセスログを出さない


  • location内で全てのリクエストは200を返すことで、サーバーが死んでいないことを伝えられる

document_rootを用意する必要もないのでとりあえず差し込んでおけば、ヘルスチェックは簡単にできそうです。


補足事項

あくまで「nginxが生きているか」以上のチェックはしてくれないので、外部からのサービスチェックなどはちゃんとしましょう。