Apache+Route53配置完成后,无法通过GoDaddy购买的域名访问EC2实例上的网站
Apache+Route53配置完成后,无法通过GoDaddy购买的域名访问EC2实例上的网站
看起来你已经走完了基础配置流程,但域名还是无法正常访问,咱们一步步拆解排查可能的问题:
1. 先确认DNS解析是否真的生效
虽然已经过了两天,但NS记录的全球同步偶尔会有延迟,也可能配置时出现疏漏:
- 打开终端,用
dig test.instabook.app或者nslookup test.instabook.app查询域名对应的IP,看返回的是不是你的EC2公网IP。 - 再查NS记录:
dig -t NS test.instabook.app,对比返回的地址和Route53托管区里显示的那4个域名服务器是否完全一致。如果不一致,说明GoDaddy那边的NS记录要么没更新成功,要么你填错了,需要去GoDaddy的DNS面板重新核对并保存。
2. 检查EC2的网络访问控制
如果DNS没问题,得确认外部流量能正常到达你的EC2:
- 查看EC2的安全组:确保入站规则允许80(HTTP)和443(HTTPS)端口的流量,来源设置为
0.0.0.0/0(或者你需要的特定访问范围)。 - 检查网络ACL:入站规则要允许80、443端口的访问,出站规则要允许对应的响应流量(一般默认是全放行,但最好确认下)。
3. 验证Apache的配置和运行状态
3.1 确认Apache是否正常运行
执行命令检查状态:
sudo systemctl status apache2
如果显示不是active (running),先启动服务:sudo systemctl start apache2,并设置开机自启:sudo systemctl enable apache2。
3.2 检查配置文件的有效性
你的虚拟主机配置里包含HTTPS重定向规则,先确认配置本身没有语法错误:
sudo apache2ctl configtest
如果返回Syntax OK说明配置没问题,否则根据提示修正错误。另外,确保这个虚拟主机已经被启用:
sudo a2ensite test.instabook.app.conf # 假设你的配置文件是这个命名 sudo systemctl reload apache2
3.3 排查HTTPS的潜在问题
注意你的配置里有这条强制跳转规则:
RewriteEngine on RewriteCond %{SERVER_NAME} =test.instabook.app RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
这条规则会把所有HTTP请求强制跳转到HTTPS,但如果还没给域名配置SSL证书(比如Let's Encrypt证书),HTTPS请求会直接失败,导致访问域名时出错。
可以先暂时注释掉这几行Rewrite规则,重启Apache后用http://test.instabook.app访问试试:如果能打开网站,说明问题出在缺少SSL证书,需要给域名申请并配置证书后再启用重定向。
3.4 查看Apache错误日志找线索
如果上面的步骤都没问题,去查看错误日志定位细节:
sudo cat /var/log/apache2/error.log
日志里会记录比如端口绑定失败、文件权限问题、虚拟主机匹配错误等信息,帮你快速找到问题根源。
4. 直接用EC2公网IP测试
先跳过域名,直接访问EC2的公网IP(比如http://你的EC2公网IP):
- 如果IP能访问网站,说明问题确实在DNS或者域名相关配置上,回到第一步重新核对Route53和GoDaddy的设置。
- 如果IP也访问不了,那问题出在EC2内部的Apache配置、安全组或者网络ACL上,重点排查这些部分。
5. 核对Route53的A记录
确认Route53托管区里的A记录:
- 记录类型是
A,值是EC2的公网IP(不是私有IP)。 - 如果需要访问
www.test.instabook.app,还要额外添加一条A记录或者CNAME记录指向主域名。
备注:内容来源于stack exchange,提问作者Anuj Panchal
相关产品推荐
相关产品推荐

