Techioz Blog

Rails + Heroku のポストリクエストからの迅速な回答

概要

Ruby on Rails を使用してアプリケーションを作成し、heroku でデプロイしています メイン ページやその他のいくつかのページに加えて、ポスト リクエストを通じてさまざまな情報を受信/記録するためにサードパーティ アプリケーションによって使用されるエンドポイントがあります。 通常の展開とセットアップでは、DNS、TCP、SSL にさらに 200 ミリ秒かかります

特にこれらのエンドポイントに対して、ドメインのような http + 静的 IP を使用して、SSL と DNS の時間をスキップできるようにすることは可能ですか?

config.force_ssl を false に変更すると、SSL がスキップされます (80 ミリ秒を節約) が、すべてのリクエストに対して機能します。エンドポイント ルートのみに制限したいと考えています。

解決策

SSLを無効にするのは得策とは思えません。また、SSL を使用した場合、平均応答時間が 10 ミリ秒未満のアプリケーションを使用したことがあります。したがって、SSL がボトルネックであるとは考えられません。

ただし、特定のルートでのみ SSL を無効にしてみたい場合は、どのパスで SSL を強制しないかを構成できます。

config.force_ssl = true は、ActionDispatch::SSL をアプリケーションのミドルウェア スタックに追加します。もう 1 つの構成オプション (ssl_options) は、リダイレクトの動作を微調整するために使用できます。

ドキュメントのこの例では、ヘルス チェック ルートがあり、SSL を強制しないため、SSL を使用するようにリダイレクトされません。

config.ssl_options = { 
  redirect: { exclude: -> request { /healthcheck/.match?(request.path) } } 
}

ActionDispatch::SSL のドキュメントを参照してください。