Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 8 additions & 4 deletions content/de/developer/integration/reverse-proxy/nginx.md
Original file line number Diff line number Diff line change
Expand Up @@ -104,7 +104,9 @@ server {
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Connection '';
proxy_cache_convert_head off;
proxy_connect_timeout 300s;
proxy_connect_timeout 5s;
proxy_read_timeout 300s;
proxy_send_timeout 300s;
chunked_transfer_encoding off;
proxy_pass http://rustfs_s3;
}
Expand All @@ -131,13 +133,15 @@ server {
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
proxy_connect_timeout 300s;
proxy_connect_timeout 5s;
proxy_read_timeout 300s;
proxy_send_timeout 300s;
proxy_pass http://rustfs_console;
}
}
```

Der S3-Server behält den ursprünglichen Host und den Anfragepfad, deaktiviert die Anfragepufferung für Streaming-Uploads und wandelt signierte `HEAD`-Anfragen nicht um. Der Console-Server leitet außerdem die Header für WebSocket-Upgrades weiter.
Der S3-Server behält den ursprünglichen Host und den Anfragepfad, deaktiviert die Anfragepufferung für Streaming-Uploads und wandelt signierte `HEAD`-Anfragen nicht um. Der Console-Server leitet außerdem die Header für WebSocket-Upgrades weiter. Beide Server halten `proxy_connect_timeout` kurz, damit eine Anfrage an einen nicht erreichbaren Knoten innerhalb weniger Sekunden fehlschlägt oder zum nächsten Knoten weiterleitet, und halten `proxy_read_timeout` sowie `proxy_send_timeout` großzügig, damit große Uploads und Downloads nicht abgeschnitten werden.

## 4. Die Compose-Datei anlegen

Expand Down Expand Up @@ -260,7 +264,7 @@ upstream rustfs_console {
}
```

Der Console-Upstream verwendet Client-Affinität, weil eine laufende OpenID-Connect-Anmeldung ihren `state` auf einem RustFS-Knoten speichert. Halten Sie Port `9000` zwischen den RustFS-Knoten offen, weil der interne Knoten-RPC denselben Listener verwendet.
Der Console-Upstream verwendet Client-Affinität, weil eine laufende OpenID-Connect-Anmeldung ihren `state` auf einem RustFS-Knoten speichert. Halten Sie Port `9000` zwischen den RustFS-Knoten offen, weil der interne Knoten-RPC denselben Listener verwendet. Halten Sie `proxy_connect_timeout` auch hier kurz: Mit einem langen Verbindungs-Timeout bleibt jede Anfrage, die auf einen ausgefallenen Knoten trifft, Minuten lang stehen, während Nginx auf den TCP-Handshake wartet, und Clients laufen ab, bevor Nginx den nächsten Knoten versucht.

## Nächste Schritte

Expand Down
12 changes: 8 additions & 4 deletions content/en/developer/integration/reverse-proxy/nginx.md
Original file line number Diff line number Diff line change
Expand Up @@ -104,7 +104,9 @@ server {
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Connection '';
proxy_cache_convert_head off;
proxy_connect_timeout 300s;
proxy_connect_timeout 5s;
proxy_read_timeout 300s;
proxy_send_timeout 300s;
chunked_transfer_encoding off;
proxy_pass http://rustfs_s3;
}
Expand All @@ -131,13 +133,15 @@ server {
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
proxy_connect_timeout 300s;
proxy_connect_timeout 5s;
proxy_read_timeout 300s;
proxy_send_timeout 300s;
proxy_pass http://rustfs_console;
}
}
```

The S3 server preserves the original host and request path, disables request buffering for streaming uploads, and does not convert signed `HEAD` requests. The Console server also forwards WebSocket upgrade headers.
The S3 server preserves the original host and request path, disables request buffering for streaming uploads, and does not convert signed `HEAD` requests. The Console server also forwards WebSocket upgrade headers. Both servers keep `proxy_connect_timeout` short so a request to an unreachable node fails or fails over to the next node within seconds, and keep `proxy_read_timeout` and `proxy_send_timeout` generous so large uploads and downloads are not cut off.

## 4. Create the Compose file

Expand Down Expand Up @@ -260,7 +264,7 @@ upstream rustfs_console {
}
```

The Console upstream uses client affinity because an in-progress OpenID Connect login stores its `state` on one RustFS node. Keep port `9000` open between RustFS nodes because internal node RPC uses the same listener.
The Console upstream uses client affinity because an in-progress OpenID Connect login stores its `state` on one RustFS node. Keep port `9000` open between RustFS nodes because internal node RPC uses the same listener. Keep `proxy_connect_timeout` short here as well: with a long connection timeout, every request that lands on a failed node stalls for minutes while Nginx waits for the TCP handshake, and clients time out before Nginx tries the next node.

## Next steps

Expand Down
12 changes: 8 additions & 4 deletions content/fr/developer/integration/reverse-proxy/nginx.md
Original file line number Diff line number Diff line change
Expand Up @@ -104,7 +104,9 @@ server {
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Connection '';
proxy_cache_convert_head off;
proxy_connect_timeout 300s;
proxy_connect_timeout 5s;
proxy_read_timeout 300s;
proxy_send_timeout 300s;
chunked_transfer_encoding off;
proxy_pass http://rustfs_s3;
}
Expand All @@ -131,13 +133,15 @@ server {
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
proxy_connect_timeout 300s;
proxy_connect_timeout 5s;
proxy_read_timeout 300s;
proxy_send_timeout 300s;
proxy_pass http://rustfs_console;
}
}
```

Le serveur S3 conserve l’hôte et le chemin de la requête d’origine, désactive la mise en tampon des requêtes pour les chargements en flux et ne convertit pas les requêtes `HEAD` signées. Le serveur de la Console transmet aussi les en-têtes de mise à niveau WebSocket.
Le serveur S3 conserve l’hôte et le chemin de la requête d’origine, désactive la mise en tampon des requêtes pour les chargements en flux et ne convertit pas les requêtes `HEAD` signées. Le serveur de la Console transmet aussi les en-têtes de mise à niveau WebSocket. Les deux serveurs gardent un `proxy_connect_timeout` court pour qu’une requête vers un nœud inaccessible échoue ou bascule vers le nœud suivant en quelques secondes, et gardent `proxy_read_timeout` et `proxy_send_timeout` généreux pour que les gros transferts ne soient pas interrompus.

## 4. Créer le fichier Compose

Expand Down Expand Up @@ -260,7 +264,7 @@ upstream rustfs_console {
}
```

L’upstream de la Console utilise l’affinité client, car une connexion OpenID Connect en cours stocke son `state` sur un seul nœud RustFS. Laissez le port `9000` ouvert entre les nœuds RustFS, car le RPC interne des nœuds utilise le même écouteur.
L’upstream de la Console utilise l’affinité client, car une connexion OpenID Connect en cours stocke son `state` sur un seul nœud RustFS. Laissez le port `9000` ouvert entre les nœuds RustFS, car le RPC interne des nœuds utilise le même écouteur. Gardez aussi un `proxy_connect_timeout` court ici : avec un délai de connexion long, chaque requête qui arrive sur un nœud en panne reste bloquée des minutes entières pendant que Nginx attend la poignée de main TCP, et les clients expirent avant que Nginx n’essaie le nœud suivant.

## Étapes suivantes

Expand Down
12 changes: 8 additions & 4 deletions content/ja/developer/integration/reverse-proxy/nginx.md
Original file line number Diff line number Diff line change
Expand Up @@ -104,7 +104,9 @@ server {
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Connection '';
proxy_cache_convert_head off;
proxy_connect_timeout 300s;
proxy_connect_timeout 5s;
proxy_read_timeout 300s;
proxy_send_timeout 300s;
chunked_transfer_encoding off;
proxy_pass http://rustfs_s3;
}
Expand All @@ -131,13 +133,15 @@ server {
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
proxy_connect_timeout 300s;
proxy_connect_timeout 5s;
proxy_read_timeout 300s;
proxy_send_timeout 300s;
proxy_pass http://rustfs_console;
}
}
```

S3 用の server ブロックは、元のホストとリクエストパスを保持し、ストリーミングアップロード向けにリクエストのバッファリングを無効にし、署名済みの `HEAD` リクエストを変換しません。Console 用の server ブロックは、WebSocket のアップグレードヘッダーも転送します。
S3 用の server ブロックは、元のホストとリクエストパスを保持し、ストリーミングアップロード向けにリクエストのバッファリングを無効にし、署名済みの `HEAD` リクエストを変換しません。Console 用の server ブロックは、WebSocket のアップグレードヘッダーも転送します。どちらの server ブロックも `proxy_connect_timeout` を短く設定しているため、到達できないノードへのリクエストは数秒以内に失敗するか次のノードへフェイルオーバーします。一方、`proxy_read_timeout` と `proxy_send_timeout` は長めに設定し、大きなアップロードやダウンロードが途中で切断されないようにしています。

## 4. Compose ファイルを作成する

Expand Down Expand Up @@ -260,7 +264,7 @@ upstream rustfs_console {
}
```

Console のアップストリームがクライアントアフィニティを使うのは、進行中の OpenID Connect ログインが `state` を 1 台の RustFS ノードに保存するためです。ノード間の内部 RPC は同じリスナーを使うため、RustFS ノード間ではポート `9000` を開けたままにします。
Console のアップストリームがクライアントアフィニティを使うのは、進行中の OpenID Connect ログインが `state` を 1 台の RustFS ノードに保存するためです。ノード間の内部 RPC は同じリスナーを使うため、RustFS ノード間ではポート `9000` を開けたままにします。ここでも `proxy_connect_timeout` は短く保ってください。接続タイムアウトが長いと、障害ノードに到達したリクエストは Nginx が TCP ハンドシェイクを待つ間ずっと数分間ブロックされ、Nginx が次のノードを試す前にクライアント側がタイムアウトしてしまいます。

## 次のステップ

Expand Down
12 changes: 8 additions & 4 deletions content/zh/developer/integration/reverse-proxy/nginx.md
Original file line number Diff line number Diff line change
Expand Up @@ -104,7 +104,9 @@ server {
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Connection '';
proxy_cache_convert_head off;
proxy_connect_timeout 300s;
proxy_connect_timeout 5s;
proxy_read_timeout 300s;
proxy_send_timeout 300s;
chunked_transfer_encoding off;
proxy_pass http://rustfs_s3;
}
Expand All @@ -131,13 +133,15 @@ server {
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
proxy_connect_timeout 300s;
proxy_connect_timeout 5s;
proxy_read_timeout 300s;
proxy_send_timeout 300s;
proxy_pass http://rustfs_console;
}
}
```

S3 服务器会保留原始主机和请求路径,禁用请求缓冲以支持流式上传,并且不会转换已签名的 `HEAD` 请求。控制台服务器还会转发 WebSocket 升级标头。
S3 服务器会保留原始主机和请求路径,禁用请求缓冲以支持流式上传,并且不会转换已签名的 `HEAD` 请求。控制台服务器还会转发 WebSocket 升级标头。两个服务器都保持较短的 `proxy_connect_timeout`,使请求在节点不可达时于几秒内失败或转移到下一个节点;`proxy_read_timeout` 与 `proxy_send_timeout` 则保持宽松,确保大文件上传和下载不会被中途切断。

## 4. 创建 Compose 文件

Expand Down Expand Up @@ -260,7 +264,7 @@ upstream rustfs_console {
}
```

控制台上游使用客户端亲和性,因为正在进行的 OpenID Connect 登录会将其 `state` 存储在一个 RustFS 节点上。请保持 RustFS 节点之间的端口 `9000` 开放,因为内部节点 RPC 使用同一监听器。
控制台上游使用客户端亲和性,因为正在进行的 OpenID Connect 登录会将其 `state` 存储在一个 RustFS 节点上。请保持 RustFS 节点之间的端口 `9000` 开放,因为内部节点 RPC 使用同一监听器。这里同样要保持较短的 `proxy_connect_timeout`:连接超时过长时,落到故障节点上的每个请求都会阻塞数分钟等待 TCP 握手,客户端往往在 Nginx 尝试下一个节点之前就已超时。

## 后续步骤

Expand Down
Loading