minio安装

一、下载安装文件minio
wget https://dl.minio.io/server/minio/release/linux-amd64/minio

下载该文件,可能网络慢,不好下载,这时候,可以通过下载工具下载minio安装包到本地,直接复制wget 后面的链接即可

如果太慢可以用我的网盘地址:补上

安装minio服务
1、将文件上传到服务器,我的放在/opt/minio下,没有的话自己创建文件夹

2、将minio文件放在minio下,在minio文件夹下创面data ,(mkdir data)创建/data目录,用来作为minio的存储目录

3、chmod +x minio

4、启动minio服务 ,这个启动只是临时的,关闭xshell页面服务停止

./minio server /data

5、启动如下图所示,如果要后台运行,可以使用下面命令。

nohup minio server /data &

5.2后台运行也可这么配置

nohup /opt/minio server /opt/minio/data > /opt/data/minio.log 2>&1 &

会生成nohup.out文件夹,里面包含accesskey和secretkey

需要打开9000端口,端口可以修改

修改配置文件:
自定义MINIO_ACCESS_KEY和MINIO_SECRET_KEY

export MINIO_ACCESS_KEY=minio

export MINIO_SECRET_KEY=miniostorage

export MINIO_VOLUMES="/opt/data" // 自定义文件夹地址

重新启动:nohup minio server /data &

自定义端口

nohup minio server --address IP:PORT /data &

配置https访问
在项目使用minio服务器上传下载文件的过程中发现,由于网站使用的是https访问模式,而minio使用的是http访问方式,在https直接跳转http会出现安全性问题。这个问题的解决方案网上有很多回答,大部分都是说加访问头,还有就是通过表单请求,或者通过nginx重定向。这写方法总是治标而不治本,考虑minio一个这么流行的分布式服务器不可能不支持主流的https访问方式,网上查资料较少。直接去官方文档查看,果然发现相应的minio配置方式,最后采用openssl的方式加入证书,将minio访问方式改为https,从而解决该问题。

使用 OpenSSL:

生成私钥:

Copyopenssl genrsa -out private.key 2048

生成自签名证书:

Copyopenssl req -new -x509 -days 3650 -key private.key -out public.crt -subj “/C=US/ST=state/L=location/O=organization/CN=domain”

其中,3650是证书有效期天数,state所在省,location所在市,orgnization组织,domain 域

将生成的私钥和公钥放在 Minio的config/certs文件夹中

官网相关信息地址如下:

https://docs.min.io/cn/how-to-secure-access-to-minio-server-with-tls

https://docs.min.io/cn/minio-server-configuration-guide.html

去掉ssl验证

    /**
     * 注入minio 客户端
     *
     * @return
     */
    @Bean
    public MinioClient minioClient() throws Exception {
        SSLClient.sslClient();
        return MinioClient.builder()
                .endpoint(endpoint)
                .credentials(accessKey, secretKey)
                .httpClient(getUnsafeOkHttpClent())
                .build();
    }
public static OkHttpClient getUnsafeOkHttpClent() throws KeyManagementException {
        try {
            final TrustManager[] trustAllCerts = new TrustManager[]{x509TrustManager()};
            final SSLContext sslContext = SSLContext.getInstance("SSL");
            sslContext.init(null, trustAllCerts, new SecureRandom());
            final SSLSocketFactory sslSocketFactory = sslContext.getSocketFactory();
            OkHttpClient.Builder builder = new OkHttpClient.Builder();
            builder.sslSocketFactory(sslSocketFactory, x509TrustManager());
            builder.hostnameVerifier((s, sslSession) -> true);
            return builder.build();

        } catch (NoSuchAlgorithmException e) {
            e.printStackTrace();
        }
        return null;
    }


    private static X509TrustManager x509TrustManager() {
        X509TrustManager x509TrustManager = new X509TrustManager() {
            @Override
            public void checkClientTrusted(X509Certificate[] x509Certificates, String s) {

            }

            @Override
            public void checkServerTrusted(X509Certificate[] x509Certificates, String s) {

            }

            @Override
            public X509Certificate[] getAcceptedIssuers() {
                return new X509Certificate[]{};
            }
        };
        return x509TrustManager;
    }

你可能感兴趣的:(minio安装)