没有定义解析器来解析 s3-eu-west-1.amazonaws.com

Ben*_*aux 1 nginx amazon-s3

我所有的 xml 文件都存储在 AWS S3 中,我想通过我的网站显示它们:

Nginx 配置:

location ~ \.xml$ {

    proxy_pass https://s3-eu-west-1.amazonaws.com/bucket-name/sitemap$request_uri;

}
Run Code Online (Sandbox Code Playgroud)

但我得到一个 502 和日志说

[error] 13295#13295: *26 no resolver defined to resolve s3-eu-west-1.amazonaws.com
Run Code Online (Sandbox Code Playgroud)

如果我定义一个解析器

resolver s3-eu-west-1.amazonaws.com;
Run Code Online (Sandbox Code Playgroud)

我得到

[error] 14430#14430: *7 s3-eu-west-1.amazonaws.com could not be resolved (110: Operation timed out),
Run Code Online (Sandbox Code Playgroud)

感谢您的帮助

And*_*den 5

AWS DNS可能位于10.0.0.2您的 VPC 中(它是基本 CIDR 加 2)。

添加resolverresolver_timeout

location ~ \.xml$ {
    resolver         10.0.0.2 valid=300s;
    resolver_timeout 10s;

    proxy_pass https://s3-eu-west-1.amazonaws.com/bucketname/sitemap$request_uri;
}
Run Code Online (Sandbox Code Playgroud)

注意:在 EC2 Classic 中,AWS DNS 服务器位于172.16.0.23