Minio nginx配置https和http问题解决,疑难症全网首发

这篇具有很好参考价值的文章主要介绍了Minio nginx配置https和http问题解决,疑难症全网首发。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

进入下面小程序可以体验效果

 Minio nginx配置https和http问题解决,疑难症全网首发,nginx,运维

以下问题基本上是因为NGINX代理出现

一、API直接返回单独的错误: io.minio.errors.ErrorResponseException: Access denied

二、API直接返回的错误:The request signature we calculated does not match the si

三、预览文件或者图片返回错误

<Error>
<Code>AccessDenied</Code>
<Key>1672887375909191680.png</Key>
<BucketName>9269770290188565a62b37a563d10a5a</BucketName>
<Resource>/9269770290188565a62b37a563d10a5a/1672887375909191680.png</Resource>
<RequestId>176BDD0C470B0828</RequestId>
<HostId>dd9025bab4ad464b049177c95eb6ebf374d3b3fd1af9251148b658df7ac2e3e8</HostId>
</Error>

以上三个问题都属于Access denied 这个情况,但是原因却各有不同,解决方案也不一样。无论是国内还是国外解决方案都很贫瘠。所以经过我两天的踩坑已经解决问题

这些问题都是只有在使用nginx代理情况下才会出现,如果正常使用ip是不会有问题的,但是直接用ip的话,难免暴露出一些问题和不专业。

问题一的原因及解决方案

出现这个的原因大多数情况下,确实与服务器时间是否一致有关,但是不是所有都是。

部分是由于调用了minioClient.bucketExists(); 这个API则引起异常问题

1.评论区也有大佬指出解决方式:

nginx开启了缓存,增加这配置就可以了 proxy_cache_convert_head off

2.其他解决方式:

只要不调用判断是否存在桶api即可,改成获取所有桶,然后遍历判断

如果第一个方式能解决,那么就不需要第二个方式了

问题二的原因及解决方案

出现该问题主要是因为api请求验签不通过,因为验签在nginx转发时将host和port是否有携带。

解决方案:

client连接接口分为两种,域名和端口

例如:http://oss.baidu.com,http://oss.baidu.com:6661

nginx 配置时需要区分这两种方式:

proxy_set_header Host $http_host;  #域名形式配置,例如:http://oss.baidu.com (后缀没有斜杠)

proxy_set_header Host $host:$server_port; #例如: http://oss.baidu.com:6661

完整示例:

9000端口就是data接口(例如上传和客户端连接),9001是minio控制台端口

server {
        listen 80;
        server_name oss.baidu.com;
		
		location / {
			proxy_set_header Authorization $http_authorization;
			proxy_set_header Host $http_host;
			proxy_pass http:/127.0.0.1:9000;
			proxy_set_header  X-Real-IP    $remote_addr;
            proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;
		}
	}

https 配置也同理。其实只需要http用于上传,https用于文件预览或下载即可,示例

只要是同一个域名或域名与端口即可

预览地址:https://oss.baidu.com/storage/桶名/文件名.png?xxxx

storage 是定义的上下文

	server {
		listen 443 ssl http2;
        server_name oss.baidu.com;
		gzip on;
		ssl_certificate    fullchain.pem;
		ssl_certificate_key    privkey.pem;
		ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;
		ssl_ciphers EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5;
		ssl_prefer_server_ciphers on;
		ssl_session_cache shared:SSL:10m;
		ssl_session_timeout 10m;
		add_header Strict-Transport-Security "max-age=31536000";
		
		location ^~/storage/ {
			proxy_buffering off;
		    proxy_set_header Host $http_host;
			rewrite ^/storage/(.*)$ /$1 break;
			proxy_pass http://127.0.0.1:9000;
			proxy_set_header  X-Real-IP    $remote_addr;
            proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;
		}
		
	}

问题三的原因以及解决办法

这个问题就解决方式非常简单

1.域名域名:端口,必须要完全统一,否则会因为host不同签名不通过

2.9000端口(minio默认端口)上传,也必须要9000端口查看或下载。9001不得使用

3.根据我上述的nginx配置就可以解决以问题二和问题三。文章来源地址https://www.toymoban.com/news/detail-538594.html

到了这里,关于Minio nginx配置https和http问题解决,疑难症全网首发的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • IIS 实现http重定向https(亲测有效:解决URL重写模块配置https重定向不生效的问题)

    以前部署网站的时候,都是通过代码来实现http重定向https,最近在部署个人网站的时候,突发奇想可不可通过IIS来实现无代码的重定向呢? 在一番操作猛如虎的搜索引擎操作后,发现只有google浏览器能实现重定向,在反复对照网络教程后陷入了深深的自我怀疑。最后不得已只

    2024年02月02日
    浏览(57)
  • nginx配置http强制跳转https

    一、什么是Nginx? Nginx是一个高性能的HTTP和反向代理Web服务器,同时也提供IMAP/POP3/SMTP服务。Nginx是一款轻量级的Web服务器/反向代理服务器及电子邮件(IMAP/POP3/SMTP)代理服务器。Nginx的特点是:占有内存少,并发能力强。 Nginx专门为性能优化而开发,性能是最重要的考量,非常

    2024年02月16日
    浏览(54)
  • nginx配置http请求转成https请求

    1、return 301 2、rewitre 3、error_page 原理: http和https是tcp的上层协议,当nginx服务器建立tcp连接后,根据收到的第一份数据来确定客户端是希望建立tls还是http。nginx会判断tcp请求的首写节内容以进行区分,如果是0x80或者0x16就可能是ssl或者tls,然后尝试https握手。如果端口开启了

    2024年02月07日
    浏览(45)
  • 【nginx】配置将HTTPS请求转换成HTTP

    要将HTTPS请求转换为HTTP请求,可以在Nginx的配置文件中添加以下配置: 打开Nginx的配置文件,通常位于 /etc/nginx/nginx.conf 或 /etc/nginx/conf.d/default.conf 。 在 server 块中添加以下配置,将HTTPS请求转发到后端的HTTP服务: 将 yourdomain.com 替换为你的域名, /path/to/your/ssl_certificate.crt 和

    2024年02月10日
    浏览(51)
  • Nginx同时支持Http和Https的配置详解

    当配置Nginx同时支持HTTP和HTTPS时,需要进行以下步骤: 获得SSL证书:从可信任的证书颁发机构(CA)或使用自签名证书创建SSL证书。 将证书和私钥保存到服务器:将SSL证书和私钥文件保存到指定的位置,通常是 /etc/nginx/ssl/ 目录。 配置HTTP服务: 打开 Nginx 配置文件: 通常是

    2024年02月02日
    浏览(50)
  • nginx 开启https时反向代理http服务的问题

    当我们用nginx开启https时,反向代理一个本地的http服务,会遭遇跨域问题,报错 strict-origin-when-cross-origin ,导致很多资源无法加载。 这时只要在反向代理部分的配置文件中加入这一条语句即可:

    2024年02月14日
    浏览(43)
  • Nginx配置springboot+vue项目http跳转https

    java生成证书 添加依赖 复制keystore到springboot资源目录,修改application.yml配置  启动项目 nginx配置 开启ssl     重启nginx -s reload 访问localhost:81将跳转到https://localhost/login?redirect=/index  

    2024年02月12日
    浏览(51)
  • nginx 同一个端口支持http和https配置

    原理:使用nginx的stream、 stream_ssl_preread模块 1.编译nginx 由于stream和stream_ssl_preread模块非默认引入,需要在编译安装nginx时引入;编译时添加配置参数 --with-stream --with-stream_ssl_preread_module ./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-http_stub_status_module --with-stream --with-stre

    2024年02月10日
    浏览(57)
  • MINIO 配置https报错:x509:cannot validate certificate【已解决】

    为MINIO配置https时,首先按官方要求官网描述(How to secure access to MinIO server with TLS),将TLS的公私钥放到:{{HOME}}/.minio/certs 里。 注意: 私钥需要命名为:private.key 公钥需要命名为:public.crt (如果公钥是以pem格式结尾,可直接改为crt格式) 但配置完成后会遇到如下错误,x509:c

    2024年02月14日
    浏览(53)
  • 通过nginx的upstream配置域名进行http/htts的访问最佳实践方案(406/404问题解决)

    ​ 最近,开发部门有一个访问需求,被访问方给了我们两个https的域名访问接口,这里假设为: ​ 这两个域名解析出来的地址和接口信息都是一样的,但是根据要求,需要将两个域名访问接口作为主备的方式进行配置,在https://aaa.target.com/mytarget/login/出现异常不能使用的时候

    2024年01月19日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包