ポートフォリオをデプロイする際に発生した問題について、備忘録として投稿します。
発生した問題
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になりました!
参考