华为对象存储:nginx代理临时访问地址后访问报错:Authentication Failed

目录


场景

1、使用华为对象存储保存资源文件

2、使用华为对象存储原本的临时访问url可以正常访问资源

3、经过nginx代理后,访问资源会报错Authentication Failed


nginx配置

powershell 复制代码
location ~* /voice/* {
	proxy_pass https://xxx-test.obs.cn-south-1.myhuaweicloud.com;
	proxy_set_header Host $http_host;
	proxy_set_header X-Real-IP $remote_addr;
	proxy_set_header X-Forwarded-Proto $scheme;
	break;
}

异常表现

使用nginx代理的地址访问会报错


排查

从报错信息上看是身份认证存在问题

访问地址上存在认证信息的也就只有预签名参数了

华为对象存储生成临时访问地址时,会生成预签名参数,该签名除了时间参数之外,还和Host有关,也就是获取临时地址用于计算的签名使用的Host和验证签名使用的Host必须要一致


原因

nginx代理时,Host传递的ip和端口与生成预签名时所用的ip和端口不一致


解决

nginx配置Host参数,配置为minio临时访问地址的ip和端口

powershell 复制代码
location ~* /voice/* {
	proxy_pass https://xxx-test.obs.cn-south-1.myhuaweicloud.com;
	# Host参数设置为华为对象存储临时访问地址的域名和端口
	proxy_set_header Host xxx-test.obs.cn-south-1.myhuaweicloud.com:443;
	proxy_set_header X-Real-IP $remote_addr;
	# 代理的是https地址,这里使用X-Forwarded-Proto $scheme
	proxy_set_header X-Forwarded-Proto $scheme;
	break;
}

重启nginx后可以正常访问资源

相关推荐
ping某2 天前
为什么 Nginx 明明监听了 80,转发后端时却用了 4xxxx 端口?
后端·nginx
程序猿追4 天前
那个右下角的小数字怎么“卡”住我打字——我用 HarmonyOS 自己写了一个字数限制输入框
pytorch·华为·harmonyos
古德new4 天前
鸿蒙PC使用electron迁移:Joplin Electron 桌面适配全记录
华为·electron·harmonyos
世人万千丶4 天前
桌面便签小应用 - HarmonyOS ArkUI 开发实战-TextArea与Flex布局-PC版本
华为·harmonyos·鸿蒙·鸿蒙系统
慧海灵舟4 天前
AGenUI 鸿蒙端实战踩坑录:从 Column 布局消失到异步组件宽度为 0
华为·harmonyos
yuegu7774 天前
HarmonyOS应用<节气通>开发第33篇:状态管理实战
华为·harmonyos
YM52e4 天前
买菜计算器小应用 - HarmonyOS ArkUI 开发实战-PC版本
学习·华为·harmonyos·鸿蒙·鸿蒙系统
阿捏利4 天前
系列总览-鸿蒙科普系列完全指南
华为·harmonyos
小雨下雨的雨4 天前
HarmonyOS ArkUI训练营入门-组件掌握系列-Animation 动画效果实现-PC版本
学习·华为·harmonyos·鸿蒙
2601_962072554 天前
李梦娇常识4600问|题库|打印版
sql·华为od·华为·c#·华为云·.net·harmonyos