MinIO+Nginx开启https域名访问
前言:按照文章顺序操作,踩过的坑都避开了!
环境
- 文章建立在MinIO服务是通过Docker容器创建
- 假设本文以下使用域名:minio.itze.cn
- 假设服务器IP:123.123.123.123
前期准备
1.将域名解析到服务器IP
查看解析成功示例,windows下使用命令
ping minio.itze.cn -t
出现如上图所示,说明域名已经解析到对应的IP地址,会有人问:去哪里添加解析,答:去购买域名的厂商控制台,比如你的域名是阿里云注册的,就登陆阿里云控制台有相关解析操作流程
2.申请域名对应的SSL免费证书,PS:资金富裕的直接付费买
这里提供一个申请免费的地址,每次申请有效期1年, https://console.cloud.tencent.com/ssl 申请SSL注意事项:按照提示,需要有验证域名是你的操作,一般两种方式,1.DNS,2.文件,建议使用推荐的方法添加一条解析即可,一般十几分钟就能颁发证书, 证书颁发后选择-下载-Nginx
nginx反向代理MinIO API地址并配置https
这里利用到了Nginx的 反向代理 ,配置文件如下,建议不要改动原来的 nginx.conf 文件,另外再单独创建一个 nginx_minio.conf 文件在默认的 nginx.conf 文件中加入一句话,位置放到 http{} 块中
include /你的nginx_minio.conf的路径/*.conf;
nginx_minio.conf 配置完整内容
#itze.cn ProxyStart
upstream minio {
server 127.0.0.1:9000 fail_timeout=0;
server {
listen 443 ssl;
server_name minio.itze.cn;
ssl_certificate ./cert/你的.crt; #这里换成你的证书上传的位置
ssl_certificate_key ./cert/你的.key; #这里换成你的证书上传的位置
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
ssl_prefer_server_ciphers on;
client_max_body_size 30m; #最大上传限制
location / {
root html;
index index.html index.htm;
proxy_pass https://minio;
proxy_set_header X-Forwarded-For proxy_add_x_forwarded_for;
proxy_set_header Hosthttp_host;
proxy_set_header X-Forwarded-Proto https;
proxy_redirect off;
proxy_connect_timeout 310;
proxy_send_timeout 310;
proxy_read_timeout 310;
#异常状态码跳转
error_page 307 https://www.itze.cn;
error_page 400 https://www.itze.cn;
error_page 403 https://www.itze.cn;
error_page 404 https://www.itze.cn;
error_page 500 https://www.itze.cn;
error_page 502 https://www.itze.cn;
#itze.cn ProxyEnd
#http forced jump https http强制跳转https配置
server{
listen 80;
server_name minio.itze.com;
rewrite ^(.*)$ https://minio.itze.com;
location ~ / {
index index.html index.php index.htm;
}
MinIO 配置https
1.证书准备
将申请的SSL证书 .key结尾的重命名为:private.key和 .crt结尾的重命名为:public.crt 别问为什么,官方规定,不信自己看官方文档: https://min.io/docs/minio/linux/operations/network-encryption.html?ref=docs-redirect 然后将private.key和public.crt两个文件放到MinIO目录certs下面:/你的minio目录/config/certs,算了还是上个图吧
2.容器更改
创建容器命令更改为以下,注意,如果原来路径下有文件存在,把原来的minio容器删掉重新创建不会有影响!
docker run -d -p 9000:9000 -p 50000:50000 --name minio \
-e "MINIO_ROOT_USER=admin" \
-e "MINIO_ROOT_PASSWORD=123456" \
-e "MINIO_SERVER_URL=https://minio.itze.cn " \
-v /root/minio/data:/data \