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

相关推荐
程序员清洒1 天前
Flutter for OpenHarmony:Scaffold 与 AppBar — 应用基础结构搭建
flutter·华为·鸿蒙
拉轰小郑郑1 天前
鸿蒙ArkTS中Object类型与类型断言的理解
华为·harmonyos·arkts·openharmony·object·类型断言
熊猫钓鱼>_>1 天前
动态网站发布部署核心问题详解
前端·nginx·容器化·网页开发·云服务器·静态部署
星辰徐哥1 天前
鸿蒙APP开发从入门到精通:页面路由与组件跳转
华为·harmonyos
爱吃大芒果1 天前
Flutter for OpenHarmony 适配:mango_shop 页面布局的鸿蒙多设备屏幕适配方案
flutter·华为·harmonyos
前端不太难1 天前
没有文档模型,HarmonyOS PC 应用会发生什么?
华为·状态模式·harmonyos
大雷神1 天前
HarmonyOS智慧农业管理应用开发教程--高高种地--第25篇:学习中心 - 课程详情与学习
学习·华为·harmonyos
Swift社区1 天前
Nginx 反向代理配置 React 前端与 Python 后端
前端·nginx·react.js
BlackWolfSky1 天前
鸿蒙中级课程笔记8—Native适配开发
笔记·华为·harmonyos
BlackWolfSky1 天前
鸿蒙中级课程笔记7—给应用添加通知
笔记·华为·harmonyos