Try   HackMD

Webサーバーのタイムアウト設定について

Keep-Alive

HTTP通信を切断せずに送受信できるように、定期的に送信される通信のこと。

HTTP Keep-Alive

HTTP1.1では、Keep-Aliveを用いて、レスポンスを返した後も接続を再利用できるようになっている。ひとつのコネクションの中に複数のリクエストとレスポンスを含めることができる。

Nginxの設定

keeepalive_requestskeepalive_timeoutでKeep-Aliveの設定を変更することができる。

  • keepalive_requests
    • 1つの接続で許可するリクエストの数
  • keepalive_timeout
    • HTTP通信を何秒でタイムアウトするか
    • デフォルト値: keepalive_timeout 65

HTTP Clientの設定

Go http.Client

http.Client.Timeoutでタイムアウト設定を指定することができる。
TCP接続でより細くタイムアウト時間を制御することも可能。

ProductionでGoのhttp.Clientを使う時は常に指定する方が良い。
→ 参考: Don’t use Go’s default HTTP client (in production)