nginxでインターフェースのタイムアウト時間を設定する方法は何ですか?
Nginx内では、proxy_connect_timeoutとproxy_read_timeoutを使用して、インターフェースのタイムアウト時間を設定できます。
proxy_connect_timeoutは、バックエンドサーバーとの接続を確立する際のタイムアウト時間、つまり接続タイムアウト時間を設定するために使用されます。
proxy_read_timeoutは、バックエンドサーバーからのレスポンスを受信するためのタイムアウト時間、つまりレスポンスの読み取りタイムアウト時間を設定するために使用されます。
Nginxの設定ファイルで特定のlocationやupstreamにタイムアウト時間を設定することができます。例えば、〜〜〜。
location /api {
proxy_pass http://backend_server;
proxy_connect_timeout 5s;
proxy_read_timeout 10s;
}
上の例では、APIにアクセスする際に、Nginxはリクエストをbackend_serverに転送し、接続タイムアウト時間を5秒、応答読み取りタイムアウト時間を10秒に設定します。
注意すべきは、接続タイムアウトは接続確立時にのみ有効であり、応答読み取りタイムアウトは接続確立後に計測が開始されることです。
また、バックエンドサーバーがタイムアウトすると、Nginxはクライアントに504 Gateway Timeoutエラーを返します。proxy_next_upstreamを設定することで、単一障害を回避し、他のバックエンドサーバーに転送することができます。