Heroku Labs: Router 2.0 の dyno へのキープアライブの無効化
最終更新日 2024年11月15日(金)
Table of Contents
Router 2.0 上の Common Runtime アプリでは、ルーターと Web dyno 間のすべての接続のキープアライブがデフォルトで有効になっています。dynos へのキープアライブをオプトアウトするには、Heroku Labs http-disable-keepalive-to-dyno
機能を有効にしてください。
Heroku Labs を通して追加された機能は実験的であり、変更される場合があります。
概要
HTTP キープアライブ (持続的接続とも呼ばれる) とは、1 つの TCP 接続を複数の HTTP リクエストとレスポンスを開いたままにしておくことで、新しい接続を確立するために必要な時間とリソースを削減する機能です。キープアライブを有効にすると、ルーターは各レスポンスの後に dyno への接続を開いたままにして、同じ接続を経由して後続のリクエストを送信できるようになります。この機能により、接続設定にかかる時間を最小限に抑え、アプリの効率と速度を向上させることができます。ただし、負荷分散の最適化やリソースの制約など、キープアライブを無効にするほうが望ましい場合があります。
Heroku Labs 機能を有効にすると、dyno へのキープアライブが無効になり、各 HTTP リクエストは新しい接続を経由して送信されます。
Router 2.0 でアプリのキープアライブを無効にする
dynos へのキープアライブの使用をオプトアウトするには、Heroku Labs 機能を有効にしてください。
$ heroku labs:enable http-disable-keepalive-to-dyno -a <app name>
dyno に送信された HTTP ヘッダーを調べることで、アプリが接続を閉じていることを確認できます。レスポンス後に接続が閉じられることを示す Connection: close
ヘッダーがリクエスト内に表示されます。
Router 2.0 でアプリのキープアライブを有効にする
キープアライブを再度有効にするには、Heroku Labs 機能を無効にします。
$ heroku labs:disable http-disable-keepalive-to-dyno -a <app name>
無効にした後、ルーターは持続的接続を維持し、Connection: close
ヘッダーはアプリに送信されるリクエストヘッダーに表示されなくなり、後続のリクエストで開いている接続を再利用できます。