下载
官网下载地址:Linux二进制文件
或者直接指令下载
mkdir /home/minio
cd /home/minio
wget https://dl.min.io/server/minio/release/linux-amd64/minio
chmod +x minio
wget如果下载缓慢就直接下载二进制文件
然后再上传到服务器的对应目录
启动
启动环境配置
这里我使用的是screen,也可以使用nohup启动
screen -R minio
启动参数
MINIO_ROOT_USER=admin \
MINIO_ROOT_PASSWORD=admin123 \
./minio server /mnt/data \
--console-address ":9001" --address ":9000"
其中MINIO_ROOT_USER和MINIO_ROOT_PASSWORD是登录控制台的初始的账号密码,如果不配置的话,会默认为minioadmin和minioadmin。
--console-address是控制台的地址以及端口的设置
--address是后端Api的地址以及端口的设置
到此为止,就可以直接访问服务器的 ip:9001 进行访问控制台了,如果是装在本地的话就直接访问localhost:9001即可
主页截图
Nginx配置
SSL配置以及域名配置
这里的证书我使用的是宝塔面板的let's Encrypt一键生成,域名也是用宝塔的界面直接配置的
反向代理配置 (暂未解决api端口反向代理后无法调用的问题)
这里参考官方文档给出的配置
关键代码
server {
listen 80;
server_name example.com;
# To allow special characters in headers
ignore_invalid_headers off;
# Allow any size file to be uploaded.
# Set to a value such as 1000m; to restrict file size to a specific value
client_max_body_size 0;
# To disable buffering
proxy_buffering off;
location / {
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;
proxy_set_header Host $http_host;
proxy_connect_timeout 300;
# Default is HTTP/1, keepalive is only enabled in HTTP/1.1
proxy_http_version 1.1;
proxy_set_header Connection "";
chunked_transfer_encoding off;
proxy_pass http://localhost:9000; # If you are using docker-compose this would be the hostname i.e. minio
# Health Check endpoint might go here. See https://www.nginx.com/resources/wiki/modules/healthcheck/
# /minio/health/live;
}
}
- 替换http://localhost:9000 为你的域名
- client_max_body_size 1000m是限制请求数据的大小
设置成0就是关闭客户端检查请求数据的大小 - Nginx 默认缓冲响应。要禁止 Nginx 缓冲 MinIO 对临时文件的响应,请设置proxy_buffering off;. 这将改善客户端请求的第一个字节的时间。
- Nginx 默认不允许特殊字符。设置ignore_invalid_headers off;为允许带有特殊字符的标题。
这里配置完毕之后,如果你反向代理的端口是后端api的端口9000,那么直接访问域名会自动跳转到控制台的端口9001,如果你是在云主机的环境下,还需要打开对应的9001或者9000的防火墙端口才可以正常访问,或者再配置一个域名再反向代理一个端口,例如console.xxx.com为控制台的地址(代理9001端口),api.xxx.com为api的地址(代理9000端口),这时候如果我直接使用minio提供的javasdk进行请求该域名,会报以下错误
使用的key都是正确的,但是就是报拒绝访问
目前的解决方案
将api的反向代理去掉,直接使用 ip:port (ip加端口)的方式或者domain:port(域名加端口)访问,就正常调用,也就是说绕过nginx代理的话,就可以正常调用,不知道是不是nginx反向代理的话会丢失一些请求头之类的导致无法正常请求。
补充
上面的方法,在使用控制台分享文件的时候,分享的url地址会是内网的ip或者本机的ip地址,如果想要设置直接生成域名的话,可以直接在启动前添加变量
export MINIO_SERVER_URL=https://xxx.com 或者 http://xxx.com
参数参考
文档地址
之后再启动就可以了,docker同理 添加 --evn MINIO_SERVER_URL=xxx 或者-e 'MINIO_SERVER_URL=xxx'