华为对象存储: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后可以正常访问资源

相关推荐
HwJack2010 小时前
跨模块资源共享的破局之道:HarmonyOS HSP 资源访问“避坑与升华”指南
华为·harmonyos
liulian091611 小时前
【Flutter for OpenHarmony】原生卡片 Widget 集成实战:从零构建待办清单桌面组件
flutter·华为·学习方法·harmonyos
lKWO OMET11 小时前
查看 nginx 是否已经启动
运维·数据库·nginx
想你依然心痛11 小时前
HarmonyOS 6游戏开发实战:基于悬浮导航与沉浸光感的“光影迷宫“解谜游戏
游戏·华为·harmonyos·悬浮导航·沉浸光感
liulian091612 小时前
Flutter 三方库 connectivity_plus 的鸿蒙化适配与网络状态管理实战
网络·flutter·华为·学习方法·harmonyos
ywlovecjy13 小时前
【Nginx 】Nginx 部署前端 vue 项目
前端·vue.js·nginx
liulian091613 小时前
【Flutter For OpenHarmony】Flutter 三方库 flutter_secure_storage 的鸿蒙化适配指南
flutter·华为·学习方法·harmonyos
liulian091614 小时前
【Flutter For OpenHarmony】Flutter 三方库 flutter_local_notifications 的鸿蒙化适配指南
flutter·华为·学习方法·harmonyos
IntMainJhy14 小时前
【Flutter 三方库 Provider 】flutter for open harmony的鸿蒙化适配与实战指南✨
flutter·华为·harmonyos
hutengyi15 小时前
四、nginx的优化和location匹配规则
运维·nginx