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で導入した場合と同様