使用nginx反向代理minio

问题1: 文件大小限制问题

场景:

使用nginx反向代理出的域名作为网关进行配置,上传文件超过1M时接口报错。

问题分析:

使用域名配置网关调用文件服务时,小文件可以上传,超过1M就报错413【Request Entity Too Large!】,nginx的错误,因为代理域名的nginx的服务器上配置中默认限制了文件上传大小,需要手动添加配置去解决

问题最终解决:

找到nginx的配置文件nginx/conf/nginx.conf,在location块中添加其中的配置为:client_max_body_size 200m; # 改为你需要的大小!,并重新加载nginx配置文件即可

1
client_max_body_size 1024m;

问题2:文件传输下载报错403 【SignatureDoesNotMatch】

场景:

Hzero中对象存储服务MINIO在使用NGINX进行反向代理时出现对象无法正常共享,在下载文件时,域名所分享出来的文件都报403
【SignatureDoesNotMatch】的错误

问题分析:

在文件服务进行文件下载时,nginx代理出来的minio会报403的错误,错误代码为:SignatureDoesNotMatch,网上查询是签名不正确,和nginx反向代理在做转发的时候所携带的header有关系.

问题最终解决:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
upstream minio{
server 10.1.xx.x:9000;
}

server {
listen 9000;
server_name demo.zkk.com.cn;

location / {
proxy_pass http://minio;
client_max_body_size 1024m;
proxy_http_version 1.1;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Host $http_host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}

其中下面的参数意义为:

Host 包含客户端真实的域名和端口号;
X-Forwarded-Proto 表示客户端真实的协议(http还是https);
X-Real-IP 表示客户端真实的IP;
X-Forwarded-For 这个Header和 X-Real-IP 类似,但它在多层代理时会包含真实客户端及中间每个代理服务器的IP