SelfScribe

MinIOをあえてDockerじゃなくてrpmで入れる話

Docker楽なんだけどクライアントからの指示ってのが存在する

環境

  • AlmaLinux 9.4
  • MinIO latest
  • Nginx 任意

OSはRHEL系じゃなくても◯

MinIOのインストール

rpm配布されてるので簡単

dnf install -y https://dl.min.io/server/minio/release/linux-amd64/minio.rpm

archが異なる場合はここから合うものを探す

インストールしたら設定用のパラメータを指定

vim /etc/default/minio

以下は設定例

MINIO_ROOT_USER=admin
MINIO_ROOT_PASSWORD=password
MINIO_OPTS="--address 127.0.0.1:9000 --console-address 127.0.0.1:9001"
MINIO_DOMAIN=minio.example.com
MINIO_VOLUMES=/path/to/minio/data
MINIO_BROWSER_REDIRECT=false
MINIO_BROWSER_CONTENT_SECURITY_POLICY="default-src 'self' 'unsafe-eval' 'unsafe-inline';"
MINIO_BROWSER_REFERRER_POLICY="unsafe-url"

補足 --address--console-addressはNginxでproxyするため127.0.0.1で内部のみ開いてる 9000をAPIやPublic、9001をコンソール用として定義

systemdのユニットファイルを編集して起動環境に合わせる

systemctl edit minio.service

以下を追記

[Service]
WorkingDirectory=/path/to/minio

# 以下は必要に応じて書く - これ書いておけばpermission deniedで拒否られないからね(非推奨)
User=root
Group=root

一旦起動してみる

systemctl start minio.service

エラー出なければMinIOのインストールはここまで

Nginxのインストール

dnf install nginx

設定例(serverディレクティブのみ)

server {
        listen 80;
        server_name _;

        proxy_http_version 1.1;
        proxy_set_header Host $host;
        proxy_set_header Connection "";

        location / {
                proxy_pass http://127.0.0.1:9000/;
        }
}

server {
        listen 8080;
        server_name _;

        ignore_invalid_headers off;
        client_max_body_size 0;
        chunked_transfer_encoding off;

        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        real_ip_header X-Real-IP;

        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_set_header X-NginX-Proxy true;
        proxy_set_header Origin '';

        proxy_http_version 1.1;
        proxy_intercept_errors on;
        proxy_connect_timeout 300;
        proxy_buffering off;
        proxy_request_buffering off;

        location / {
                proxy_pass http://127.0.0.1:9001/;
        }
}

80を9000、8080を9001にproxy SSL周りは割愛

Nginxを起動して確認

nginx -t
systemctl start nginx.service

確認

コンソール側にアクセス http://example.com:8080/

問題無く設定、起動できれいればログイン画面が表示される

IDとパスワードは/etc/default/minioに記載したもの

あとの使い方はDockerで導入した場合と同様

Published at: 2025-02-21

Auther: *Ly_sTel

Category: Linux

#linux

Fullsized Image