【问题标题】:NGINX Reverse Proxy configuration with AWS Signature带有 AWS 签名的 NGINX 反向代理配置
【发布时间】:2021-09-05 00:01:55
【问题描述】:

我使用 nginx 作为网关的反向代理。它正在使用普通的api。但是,它不适用于 AWS 签名。说签名不匹配。我添加了代理主机,但它仍然不起作用。请帮忙。 已验证 nginx 日志,所有标头都已通过。计算签名的问题。通过邮递员和使用 AWSSign sdk 的工作代码尝试

location / {                                
                proxy_pass_request_headers on;
                proxy_pass_request_body on;                     
                proxy_pass_header x-api-key;
                proxy_pass_header Authorization;
                proxy_pass_header x-amz-content-sha256;
                proxy_pass_header x-amz-date;
                #proxy_pass_header Host;
                proxy_set_header Host $proxy_host;
                proxy_pass https://<gatewayid>.execute-api.<region-name>.amazonaws.com/<stage>/;
                proxy_http_version  1.1;                        
            }

观察 nginx 的日志,我可以看到签名值和 sha256 值与我在邮递员中看到的完全不同。

【问题讨论】:

    标签: amazon-web-services nginx aws-api-gateway nginx-reverse-proxy aws-signature


    【解决方案1】:

    只是一个小小的改变。它期待从阶段开始到api路径结束的路径。所以我从 proxy_pass 中删除了舞台名称并将其添加到实际 url 中,因此签名计算正确。使用 (gatewayid).execute-api.(region-name).amazonaws.com 在邮递员中显式覆盖主机

    location / {                                
                    proxy_pass_request_headers on;
                    proxy_pass_request_body on;                                     
                    proxy_set_header Host $proxy_host;
                    proxy_pass https://(gatewayid).execute-api.(region-name).amazonaws.com/;
                    proxy_http_version  1.1;                        
                }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-05-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-14
      • 2017-12-01
      相关资源
      最近更新 更多