LoginSignup
5
4

More than 5 years have passed since last update.

S3互換ストレートエンジンminioで仮想ホスティング形式(サブドメイン形式)を使う

Posted at

minioというS3互換のストレージエンジンがあります。
プログラムが1つで完結していて設置が簡単にできて、簡単ながらwebの管理画面まで含まれているという優れものです。

さて、S3のURLにはパス形式と、仮想ホスティング形式の2つがあります。

パス形式: https://minio.example.com/<バケット名>/file
仮想ホスティング形式: https://<バケット名>.minio.example.com/file

バケット名がパスの先頭に入るか、サブドメインとして入るかの違いです。

minioはパス形式しか対応していません。
ですが、最近では仮想ホスティング形式のほうが主流のようで、S3クライアントやライブラリのデフォルト設定ではminioに接続できないことがあります。

そこでnginx(webサーバ)を一枚噛ませて、仮想ホスティング形式のURLをパス形式のURLに変換することにします。

server {
    listen 80;
    server_name <バケット名>.minio.example.com;

    root /var/tmp;
    index index.html index.htm;

    client_max_body_size 50M;

    try_files $uri @minio;

    location @minio {
        rewrite /(.*) /<バケット名>/$1 break;
        proxy_pass http://localhost:9000;
        proxy_redirect default;
    }
}

rewrite で、パスの先頭に /<バケット名>/ を挿入することでパス形式に変換します。

バケットが増える度にバーチャルホストの設定が増えるのが面倒ですが、nginxだとserver名にワイルドカードが使えるので、それを利用すれば1設定ファイルで全バケットに対応できるかもしれませんね。チャレンジできる人はチャレンジしてみてください。

5
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
4