You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Apache2代理的Docker容器内NodeJS aws-sdk报SignatureDoesNotMatch错误

问题排查及解决方法

  • 密钥字符校验
    首先检查部署到服务器的代码中硬编码的AWS_SECRET_ACCESS_KEY、AWS_ACCESS_KEY_ID是否存在多余不可见字符:比如复制粘贴时带入的末尾空格、换行符,或是Windows/Linux换行符差异导致的额外字符。同时你同时使用了环境变量赋值和AWS.config.update两种配置方式,建议注释掉process.env赋值的两行,避免多配置源冲突。
  • Docker容器时间同步校验
    AWS签名要求请求发起时间和AWS服务时间差不能超过15分钟,本地运行正常但容器报错大概率是容器时间未和宿主机同步导致的。进入容器执行date命令,和Ubuntu宿主机执行date的输出比对,若时间差超过15分钟,启动容器时添加参数-v /etc/localtime:/etc/localtime:ro同步宿主机时区与时间即可解决。
  • 依赖版本一致性校验
    检查本地开发环境的aws-sdk版本,和Docker镜像构建时安装的aws-sdk版本是否一致。建议在package.json中固定aws-sdk的版本号,不要使用^、~前缀的浮动版本规则,避免部署时自动安装差异版本导致签名算法实现不一致。

补充说明:你的Apache反向代理配置没有问题,该报错是Node服务主动向AWS发起请求时返回的错误,和外部反向代理链路无关。

内容的提问来源于stack exchange,提问作者DevJules

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 03:15:05