aws_endpoint
当使用 NGINX 的 AWS 身份验证模块时,`aws_endpoint` 指令指定用于 S3 服务的 AWS 端点。
NGINX module to proxy to authenticated AWS services
·
httpserverlocation
语法aws_endpoint "endpoint_url";
默认值s3.amazonaws.com
上下文http, server, location
参数1
说明
在 NGINX 配置中使用 aws_endpoint 指令来定义与经过身份验证的服务(尤其是 Amazon S3)通信所需的特定 AWS 端点。设置后,此指令允许 NGINX 将请求路由到正确的区域端点,通过确保请求被定向到最接近的地理服务位置,从而增强连接性并降低延迟。AWS 端点是一个关键组件,因为不同的 AWS 区域使用不同的端点,这决定了用于服务调用的 URL。该指令接受一个参数,应为表示目标 AWS 端点的有效字符串,例如 s3.us-west-1.amazonaws.com 或 s3.cn-north-1.amazonaws.com.cn。它必须在 http、server 或 location 块的上下文中定义,通常与其他 AWS 配置指令(如 aws_access_key、aws_signing_key 和 aws_s3_bucket)一起使用,以确保请求得到正确的身份验证和授权。对于由单个 NGINX 实例提供位于不同区域的多个 S3 存储桶的设置,该指令尤其有用,可根据地理属性对请求路由进行细粒度控制。需要注意的是,如果未指定此指令,默认使用的端点将是 s3.amazonaws.com,如果资源托管在其他区域,可能会导致问题。该指令有助于根据所托管应用的基础设施需求调整模块行为。
配置示例
server {
listen 8000;
aws_access_key your_aws_access_key;
aws_key_scope scope_of_generated_signing_key;
aws_signing_key signing_key_generated_using_script;
aws_s3_bucket your_s3_bucket;
location /s3_beijing {
aws_endpoint "s3.cn-north-1.amazonaws.com.cn";
proxy_pass http://your_s3_bucket.s3.cn-north-1.amazonaws.com.cn;
}
}⚠
确保 endpoint 与预期的 AWS region 匹配,以避免连接问题。
⚠
不要忘记定期刷新 signing key;它仅在一周内有效。
⚠
endpoint 应该用引号括起;否则可能导致语法错误。