在实际项目中,会存在MINIO外网不能访问,只能通过应用的机器进行转发才能访问的情况。该篇文章主要是为解决这种场景而写。
PS:如果MINIO外网可以直接访问,正常配置MINIO的OSS配置即可。
阅读之前
- 了解MINIO对endpoint的限制,
As per S3 specification, path in the endpoint is not supported.
即MINIO的请求地址不能带path.
详细参考:https://github.com/minio/minio-java/issues/1476
解决办法
- 项目中的MINIO地址配置一个可以访问的外网地址; 在网络层(NGINX)中配置该外网地址到MINIO的内网地址;
- 因MINIO对endpoint的限制只能是 ip+port,即不能包含path, 也即不能通过配置path的方式进行转发;需要给一个IP(域名)+ 端口的 外部地址。
详细配置步骤
项目中OSS的配置
uploadUrl 和 downloadUrl配置为外网可访问的地址,非实际的MINIO地址。即访问MINIO通过一个可外部访问的地址进行转换
cdn:
oss:
name: MINIO
type: MINIO
bucket: pamirs
# uploadUrl 和 downloadUrl配置为外网可访问的地址,非实际的MINIO地址
uploadUrl: http://127.0.0.1:8083
downloadUrl: http://127.0.0.1:8083
accessKeyId: svs7nKWRSrfFPH1X5FOy
accessKeySecret: yoIq1T1w4ythggvL51rNyyiKST0KLPagUwB3C23A
mainDir: assert/demo
validTime: 3600000A
timeout: 600000
active: true
referer:
localFolderUrl:
NGINX配置
upstream minio {
#真实的MINIO的地址
server 39.103.145.77:9000 weight=100 max_fails=2 fail_timeout=30s;
}
server {
listen 8083;
server_name 127.0.0.1;
location / {
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-For $remote_addr;
client_body_buffer_size 10M;
client_max_body_size 50M;
proxy_buffers 1024 4k;
proxy_read_timeout 3000;
proxy_next_upstream error timeout http_404;
proxy_pass http://minio;
}
}
Oinone社区 作者:望闲原创文章,如若转载,请注明出处:https://doc.oinone.top/yun-wei-shi-jian/7112.html
访问Oinone官网:https://www.oinone.top获取数式Oinone低代码应用平台体验