问题是由于某些较旧的DNS服务器无法解析AWS的区域顶级域名(Zone Apex)记录,这导致了访问问题。为了解决这个问题,我们需要使用适当的DNS解决方案。
以下是一个可能的解决方案。您可以使用Amazon Route 53进行DNS解析。使用Route 53的别名记录,它们可以解析Zone Apex记录并指向特定的AWS资源,例如Elastic Load Balancer(ELB)或S3存储桶。您还需要在AWS控制台中设置一个默认的NS(名称服务器)记录来指向您的Route 53帐户。
以下是一个使用Node.js SDK进行记录创建和设置的示例代码:
const AWS = require('aws-sdk');
const route53 = new AWS.Route53();
const recordDNSName = "yourdomain.com";
const hostedZoneId = "XXXXXXXXXXXXXXXXXXXX";
const params = {
ChangeBatch: {
Changes: [
{
Action: "CREATE",
ResourceRecordSet: {
Name: recordDNSName,
Type: "A",
AliasTarget: {
HostedZoneId: hostedZoneId,
DNSName: "yourresource.elb.amazonaws.com",
EvaluateTargetHealth: false
}
}
}
]
},
HostedZoneId: hostedZoneId
};
route53.changeResourceRecordSets(params, (err, data) => {
if (err) {
console.log(err);
} else {
console.log("Record created successfully");
}
});
在上面的示例中,我们使用Alias记录类型来指向Elastic Load Balancer resource。您可以使用同样的方法来指向其他AWS资源。请确保将正确的“HostedZoneId”值替换为您的Route 53托管区域的ID。并且使用正确的替换“DNSName”并指向正确的资源。
给定的解决方案应该解决