华为对象存储: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 天前
nginx 快速入门教程 - 写给前端的你
前端·nginx·前端工程化
何中应5 天前
Nginx转发请求错误
前端·后端·nginx
芝士雪豹只抽瑞克五5 天前
Nginx 高性能Web服务器笔记
服务器·nginx
王码码20355 天前
Flutter for OpenHarmony:socket_io_client 实时通信的事实标准(Node.js 后端的最佳拍档) 深度解析与鸿蒙适配指南
android·flutter·ui·华为·node.js·harmonyos
失重外太空啦5 天前
nginx
运维·nginx
Swift社区5 天前
如何利用 ArkUI 框架优化鸿蒙应用的渲染性能
华为·harmonyos
特立独行的猫a5 天前
uni-app x跨平台开发实战:开发鸿蒙HarmonyOS影视票房榜组件完整实现过程
华为·uni-app·harmonyos·轮播图·uniapp-x
天蓝不会忘记025 天前
lvs,haproxy,keepalived,nginx,tomcat介绍和实验
nginx·tomcat·lvs
feng68_5 天前
Nginx高性能Web服务器
linux·运维·服务器·nginx