我生成的文件的网址由迷你和302 HttpCode的RestController返回,但我需要使用外部地址与Nginx位置。迷你临时网址有X-Amz-签名头和服务的网址包含在签名中,这就是为什么我不能通过nginx重定向用户。例如:主机:小型主机端口:微型端口存储桶:文件名:333/test.jpg
minio的网址:http://minio-host:minio-port/file/333/test.jpg但是,我想使用nginx位置(http://my-host/minio)如果我使用nginx,我无法获取文件,因为X-Amz-Signature包含host = http://minio-host:minio-port我应该怎么做才能使用nginx?我在docker中启动了minio和nginx
我尝试禁用nginx中的标头更改
1条答案
按热度按时间kt06eoxx1#
我在本地也有类似的问题。
解决方案1,是你需要通过nginx创建presignedUrl与你的公共网址,而不是通过一个对接网络.
解决方案2,通过mc客户端生成链接。这也起作用了。但是你很难通过mc生成每一个链接,这取决于你在做什么。
你也可以参考我对类似问题的回答:https://stackoverflow.com/questions/74656068/minio-how-to-get-right-link-to-display-image-on-html/74717273#74717273:%7E:text=If%20you%20have%20Minio%20running%20in%20a%20container%2C%20it%20is%20always%20a%20mess%20with%20127.0.0.1%20or%20localhost:~:text=Try%20to%20generate%20the%20link%20with%20the%20minioclient。
最后,我用了一个docker-compose的例子,使用了quay.io的图片和nginx。这里甚至连通过浏览器用户界面创建的链接都不起作用。
这个问题我解决了使用bitnami/minio图像。
试试这个:
您还可以在主机上的hosts文件中放置一个条目。
127.0.0.1 迷你.本地
然后将UI与www.example.com一起使用Http://minio.local:9001
这将生成正确的presignedURL。
如果一切正常,您可以创建一个多节点安装,并使用nginx作为负载平衡器。