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
		   }
		   
	}

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

创建并编辑文件

vi run_minio.sh

文件的内容

#!/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"

给文件添加可执行权限

chmod +x run_minio.sh

执行文件就可以运行minio了

sh run_minio.sh
  • 7
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值