📝

RailsのHostAuthorizationによってELBのヘルスチェックがhealthyにならない

2024/06/25に公開

ポートフォリオをデプロイする際に発生した問題について、備忘録として投稿します。

発生した問題

Rails6 + AWSで下記の構成のようなアプリを開発していました。

RailsのHostAuthorizationを利用し、/api/health_checkというパスでALBからのヘルスチェックを行おうとしました。
しかし、Railsが403エラーを返し、ヘルスチェックが失敗してしまいました。

原因

Railsの設定は下記のようになっていました。

environments/production.rb
config.hosts << 'base_domain.com'

原因は、
「ヘルスチェック時のホスト名がbase_domain.comでないからエラーになっていた」
というものです。

対策

environments/production.rb
config.hosts << "base_domain.com"
config.host_authorization = { 
  exclude: -> (request) { request.path == '/api/health_check' }
}

この設定で無事、ALBからのhealthcheckでhealthyになりました!

参考

フリーランスエンジニア必見!

最後に、フリーランスエンジニアの方にご案内です。
あなたに今だけご紹介できる限定の案件があります!

気になる方は公式ラインの追加をお願いします👇
https://bit.ly/3xLrLGw

Discussion