nginx转发请求访问不了minio

问题

今天解决了一个小程序发送文件400的问题,需要请求头,然后又遇上另一个问题,我的minio不能通过nginx访问到。

解决

跟小程序的问题类似,缺乏请求头,但是网上的解决方案也都是加入请求头,尝试了以后没有效果。 算了,自己探索。
跟小程序解决的方式类似,后端接口使用swagger能上传文件,到了小程序就不能,那么看看swagger的请求头。 我直接访问minio的服务端口,也是能直接访问到资源,那么用浏览器的F12调试工具->网络 看看资源加载时的请求头,发现了几个比较特别的:

Accept-Ranges: bytes
ETag: "60ac9c8b633681ac748e5393575aade4"
Server: MinIO
X-Amz-Request-Id: 17368B4B88634793
X-Content-Type-Options: nosniff
X-Xss-Protection: 1; mode=block

后面的X开头的,看不懂,先忽略, ETag一看就知道随机生成的,如果需要这个,那真没办法了,先忽略。 Accept-Ranges 接收的种类,指定接收字节数据,应该需要,Server: MinIO 这么明显的MinIO,那应该是必须的。于是添加到Nginx的请求头里面:

        # minio直接访问接口
        location ~ /(files)/ {
            proxy_set_header Host $http_host;
            proxy_set_header Server MinIO;
            proxy_set_header Accept-Ranges bytes;
            proxy_pass http://127.0.0.1:9000;
        }

成功了。
这个帖子为了记录和分享。

你可能感兴趣的:(nginx,运维)