單機部署minio,設置Nginx代理,配置https(TLS)訪問


安裝

下載地址:https://dl.min.io/

# 創建目錄
mkdir -p /usr/local/minio/{data,bin,etc}

# 下載minio
wget https://dl.min.io/server/minio/release/linux-amd64/minio -P /usr/local/minio/bin/

# 授予minio文件執行權限
cd /usr/local/minio/bin && chmod +x minio

# 創建minio用戶
useradd -s /sbin/nologin -d /var/lib/minio minio

# 更改minio相關目錄、文件的所有者、所有組
chown -R minio:minio /usr/local/minio/

# 創建配置文件:/usr/local/minio/etc/minio.conf
MINIO_VOLUMES="/usr/local/minio/data"
#端口:默認9000
MINIO_OPTS="--address ':9000' --console-address ':9001' --config-dir /usr/local/minio/etc/"
#登錄名
#MINIO_ACCESS_KEY=minio  #過期配置
MINIO_ROOT_USER=minio
#登錄密碼
#MINIO_SECRET_KEY=minio  #過期配置
MINIO_ROOT_PASSWORD=minio

# 創建service文件:/etc/systemd/system/minio.service
[Unit]
Description=MinIO
Documentation=https://docs.min.io
Wants=network-online.target
After=network-online.target
AssertFileIsExecutable=/usr/local/minio/bin/minio
[Service]
# User and group
User=minio
Group=minio
EnvironmentFile=/usr/local/minio/etc/minio.conf
ExecStart=/usr/local/minio/bin/minio server $MINIO_OPTS $MINIO_VOLUMES
# Let systemd restart this service always
Restart=always
# Specifies the maximum file descriptor number that can be opened by this process
LimitNOFILE=65536
# Disable timeout logic and wait until process is stopped
TimeoutStopSec=infinity
SendSIGKILL=no
[Install]
WantedBy=multi-user.target

# 重新加載、生效minio.service文件(以上兩個文件配置發生變更后需要執行)
systemctl daemon-reload

# 啟動、關閉、查看進程狀態、開機啟動
systemctl start minio
systemctl stop minio 
systemctl status minio
systemctl enable minio.service

# 防火牆放行端口:9000
firewall-cmd --zone=public --add-port=9000/tcp --permanent
firewall-cmd --zone=public --add-port=9001/tcp --permanent
firewall-cmd --reload
firewall-cmd --zone=public --list-ports

# 查看minio服務日志
journalctl -u minio.service

# 倒序查看日志
journalctl -r -u minio.service

# 查看時間段內的服務日志
journalctl --since "2020-01-01 20:00:00" --until "2020-02-01 20:15:00"

為MinIO Server設置Nginx代理

參考文檔:http://docs.minio.org.cn/docs/master/setup-nginx-proxy-with-minio

參考另一篇文章:https://www.cnblogs.com/sanduzxcvbnm/p/15988362.html

注:nginx和minio是安裝在同一系統上的

修改nginx配置文件 /usr/local/nginx/conf/nginx.conf

    upstream minio_gateway {
        server 127.0.0.1:9000 weight=1 max_fails=2 fail_timeout=10s;
    }

    server {
        listen       19000;
        server_name  localhost:19000;
        location  / {
            proxy_set_header Host $http_host;
            proxy_pass http://minio_gateway;
            
        }
    }

我這邊對外提供訪問minio的端口號是19000,當瀏覽器訪問 IP:19000 時,nginx會代理轉發給 minio_gateway (即 localhost:9000)

登錄賬號名、密碼 見 /usr/local/minio/etc/minio.conf 中的 MINIO_ROOT_USER、MINIO_ROOT_PASSWORD

配置Minio服務使用TLS

# 查看本機ip
# ip addr
2: ens32: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:6a:65:07 brd ff:ff:ff:ff:ff:ff
    inet 192.168.20.102/24 brd 192.168.20.255 scope global noprefixroute dynamic ens32
       valid_lft 1547sec preferred_lft 1547sec
    inet6 fe80::45cc:6455:6bb0:4d86/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever

我的IP是:192.168.20.102

# 編輯文件  /etc/pki/tls/openssl.cnf
找到[ v3_ca ],新增一行: subjectAltName=IP:192.168.20.102

# 不編輯openssl.cnf文件的后果就是:minio控制台登錄不了

# 創建目錄/usr/local/minio/etc/certs 后進入,如果已存在可直接進入,在當前目錄使用 OpenSSL 來生成私鑰文件和自簽名證書

生成私鑰: openssl genrsa -out private.key 2048
生成自簽名證書: openssl req -new -x509 -days 3650 -key private.key -out public.crt -subj "/C=US/ST=state/L=location/O=organization/CN=domain"

最后檢查/usr/local/minio/etc/certs目錄是否屬於minio:minio,如果不是就需要執行以下命令: chown -R minio:minio /usr/local/minio/etc/certs

# 重新啟動minio
systemctl restart minio


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM