仮想ホスト形式
RustFS でパススタイルアクセスと仮想ホスト形式の S3 URL を設定します。
RustFS は、次の 2 つの S3 URL 形式に対応しています。
- 仮想ホスト形式
- パススタイルアクセス
2 つの形式は、URL のどこにバケット名が現れるかが異なります。
パススタイルアクセス
パススタイルアクセスが既定です。パススタイルの URL では、バケット名がエンドポイントの後ろに続きます。
例(バケット: test、ホスト: rustfs.yourdomain.com):
http://rustfs.yourdomain.com/test注意: パススタイルアクセスに設定は不要です。
仮想ホスト形式
仮想ホスト形式では、バケット名がドメインの一部になります。
例(バケット: test、ホスト: rustfs.yourdomain.com):
http://test.rustfs.yourdomain.com/設定
- DNS: ワイルドカード DNS レコードを作成します(例:
*.rustfs.yourdomain.com→ サーバーの IP アドレス)。 - 設定: 設定ファイルを変更します(Linux:
/etc/default/rustfs、Docker / Kubernetes: 環境変数)。 - ドメインの設定:
RUSTFS_SERVER_DOMAINS = "rustfs.yourdomain.com"を設定します。 - 再起動: サービスを再起動します(
systemctl restart rustfs)。
ドメイン内のポート(任意)
仮想ホストのルーティングは S3 API リスナー(既定のポートは 9000)に適用されます。RustFS は、S3 リスナー自身のポートを含む Host ヘッダーを自動的に照合します。クライアントが 別の ポート経由で RustFS に到達する場合(プロキシ経由など)に限り、そのポートを RUSTFS_SERVER_DOMAINS に含める必要があります。
例(rustfs.yourdomain.com:8000):
RUSTFS_SERVER_DOMAINS = "rustfs.yourdomain.com:8000"これにより、次のようなリクエストが、
http://my-bucket.rustfs.yourdomain.com:8000/仮想ホスト形式で正しくルーティングされます。
Host ヘッダーとの一致
RUSTFS_SERVER_DOMAINS の値は、クライアントが送信する Host ヘッダー(ポートが含まれる場合はそのポートも含む)と完全に一致する必要があります。