• nginx代理minio教程 避坑过的教程 避开SignatureDoesNotMatch


    本次教程使用的是单机minio进行演示,集群minio也和这个差不多。

    按照这个教程,可以避开nginx代理minio之后,只能访问文件,但是通过预签名url上传文件就会报SignatureDoesNotMatch的坑

    暂定如下:

    • 你已经下载好minio
    • minio服务监听端口:9010
    • minio控制台端口:9011
    • 用来外部访问minio的域名:https://oss.aaa.com

    nginx配置

    需要修改的地方

    • 自己服务器用的是http还是https
    • server_name改为自己想的域名
    • proxy_set_header Host的值
    • 两处proxy_pass的值
    # minio
    	server {
    		# SSL(https) 配置
    		listen 443 ssl http2;
    		listen [::]:443 ssl http2;
    		ssl_certificate fullchain.cer的全路径;
    		ssl_certificate_key certificate_key的全路径;
    		# 非SSL(http) 配置,这里是http配置,根据自己情况,选上面或者下面一种,nginx没有配https就选下面这种
    		listen 80;
    
    		# nginx监听的域名
    		server_name oss.aaa.com;
    
    		# 以下除了ip地址和端口号,其他配置都是参考官方文档
    		ignore_invalid_headers off;
    		client_max_body_size 2048m;
    		proxy_buffering off;
       		proxy_request_buffering off;
    		
    		location / {
    			# 这里的值是 minio服务监听ip:minio服务监听端口
     			proxy_set_header Host 10.0.0.7:9010;
          		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_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;
    			
    			# 这里的值是 http://minio服务监听ip:minio服务监听端口
    			proxy_pass http://10.0.0.7:9010;
    		}
    
    		# 以下是minio客户端配置
    		location /ui/ {
    		      rewrite ^/ui/(.*) /$1 break;
    		      proxy_set_header Host $http_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;
    		      proxy_set_header X-NginX-Proxy true;
    		
    		
    		      proxy_connect_timeout 300;
    		
    		      # To support websockets in MinIO versions released after January 2023
    		      proxy_http_version 1.1;
    		      proxy_set_header Upgrade $http_upgrade;
    		      proxy_set_header Connection "upgrade";
    		      # Some environments may encounter CORS errors (Kubernetes + Nginx Ingress)
    		      # Uncomment the following line to set the Origin request to an empty string
    		      # proxy_set_header Origin '';
    		
    		      chunked_transfer_encoding off;
    			  # 这里的值是 http://minio服务监听ip:minio服务监听端口
    		      proxy_pass http://10.0.0.7:9011; # This uses the upstream directive definition to load balance
    		   }
    		   
    	}
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62

    创建一个运行minio的shell脚本文件

    创建并编辑文件

    vi run_minio.sh
    
    • 1

    文件的内容

    #!/bin/bash
    export MINIO_ROOT_USER=minio控制台的登录账号
    export MINIO_ROOT_PASSWORD=minio控制台的登录密码
    # 以下,如果nginx没有配置https,那就写http
    # 外部通过域名访问minio的地址
    export MINIO_SERVER_URL="https://oss.aaa.com"
    # minio控制台文件路径
    export MINIO_BROWSER_REDIRECT_URL="https://oss.aaa.com/ui"
    
    /usr/local/minio/minio server /data/minio/data1  --address "10.0.0.7:9010" --console-address ":9011"
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    给文件添加可执行权限

    chmod +x run_minio.sh
    
    • 1

    执行文件就可以运行minio了

    sh run_minio.sh
    
    • 1
  • 相关阅读:
    Day29_10 JavaWeb之Servlet域对象、request及response
    vue简单下载
    npm命令大全
    System Design现代系统设计概论
    《从程序员到架构师》:从现在开始培养架构思维,一点都不晚
    开源深度学习模型部署工具箱MMDeploy简介及安装
    云原生Kubernetes:pod基础与配置
    解决:第一次用python的pip报错
    浏览器打不开DevTools?
    实战项目:负载均衡式在线OJ
  • 原文地址:https://blog.csdn.net/a_123_4/article/details/136462508