###本項はLumen Edge Application DeliveryでのVarnishについての記述です
https://lumen-28.hubspotpagebuilder.com/lumen-technologies-japan/lumen-edge-cloud-app-delivery
#VarnishのTimeoutsデフォルトタイムアウト値
通常自分でインストールしたVarnishCacheについては、起動時または実行時に varnishadm
を介して設定されたとえば、timeout_reqを5秒に増やしたい場合は、 / etc / sysconfig / varnish
の起動引数に" -p timeout_req = 5 "を追加するという方法もありますが、Lumen Application Delivery - Varnishに於いてはVCLにて記述を行います。
backend appserver1 {
.host = "127.0.0.1";
.port = "80";
.between_bytes_timeout = 30s; #ココの設定値と値の入力でタイムアウトの挙動設定を行います
}
クライアント側のタイムアウト
クライアント側のタイムアウトは、エンドユーザがVarnishにアクセスする際の設定値となります。タイムアウトが通知された後、通常、クライアント接続は閉じられます。
####まず、リクエスト初期段階として:
timeout_idle(デフォルト:5秒):クライアントが完全なリクエストヘッダーを送信する必要があるまで、接続を「accept()」してから待機する時間。
リクエスト処理の初期フェーズが経過すると、2つの異なるタイマーが有効になり始めます。
**send_timeout(デフォルト:600秒)**は、1回のリクエストで最大で動作する時間を制限します。たとえば、大量のダウンロードやリアルタイムで視聴されるビデオファイルを作成する場合は、これを最長のファイルの長さに増やす必要があります。
**idle_send_timeout(デフォルト:60秒)**は、クライアントがこれ以上データを受信したくないことを(TCP受信ウィンドウを介して)拒否できる時間を制限します。
####バックエンドのタイムアウト:
バックエンドのタイムアウトは、VarnishCacheがバックエンド操作の完了を待機する時間を決定します。
**connect_timeout(デフォルト:3.5s→最大30Sec変更可能)**は、バックエンドへのTCP接続が確立されるまで待機する時間です。
**first_byte_timeout(デフォルト:60秒→最大値60秒変更可能)**は、バックエンドの処理時間を制限します。応答の最初のバイトは、このタイムアウト内にTCP接続を経由する必要があります。
**between_bytes_timeout(デフォルト:60s→最大値60秒変更可能)**は、バックエンド接続で2回の読み取りが成功するまで待機する時間を制限します。
これらのいずれかがオフになると、VarnishCacheはFetchErrorログ行を共有メモリログに記録します。複数のバックエンドがあり、再試行/再起動を構成している場合は、別のバックエンドを要求できます。それ以外の場合、これはハードエラーであり、クライアントは(通常)503 Server Error( "guru meditation")応答を受け取ります。
##Varnishに於けるKeep Aliveはどのような設定値になるのか?
HTTP Keep-aliveとはクライアントがサーバ側と接続した際に現行のコネクションを再利用したいのでOPENにしたままにする機能です。これは再度のTCPのリクエストやハンドシェイクを無くして少しでもレスポンス遅延値改善を目指す点では有効です。HTTP1.1ではデフォルトで有効になります。
Varnishではこの値に於ける設定値は特にありません。TCP上でのConnection:Closeにて終了となります。
現在下記2つの設定値についてはベータとなっているようです。
tcp_keepalive_time
tcp_keepalive_intvl
tcp_keepalive_probes