You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Apache2子域名指向不同目录配置故障排查求助

解决blog.example.com的DNS_PROBE_FINISHED_NXDOMAIN问题

首先得明确,DNS_PROBE_FINISHED_NXDOMAIN这个错误的核心意思是:浏览器找不到blog.example.com对应的IP地址,所以咱们先从最根源的DNS环节开始排查,再逐步检查后续配置:

1. 最可能的原因:DNS子域名记录未配置或配置错误

你需要登录你的域名服务商后台(比如阿里云、Cloudflare这类),检查DNS解析记录里有没有给blog子域名添加对应的记录:

  • 推荐添加A记录:主机填blog,值填你的服务器公网IP地址
  • 或者添加CNAME记录:主机填blog,值填example.com(前提是example.com的A记录已经正确指向服务器IP)

验证方法:在本地终端执行命令测试解析结果:

# Linux/Mac用dig
dig blog.example.com
# Windows用nslookup
nslookup blog.example.com

如果返回结果里没有正确的服务器IP,那就是DNS记录的问题,赶紧修正。

2. DNS缓存导致的解析延迟

即使你刚配置好DNS记录,本地电脑、路由器或者ISP的DNS缓存可能还没更新,导致解析还是失败。可以手动清空缓存:

  • Windows:打开命令提示符(管理员权限),执行ipconfig /flushdns
  • Linux:执行sudo systemd-resolve --flush-caches(不同发行版可能略有差异)
  • Mac:执行sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder

也可以换个网络(比如手机热点)测试,或者用第三方在线DNS查询工具直接搜“DNS查询”就能找到检查全球各地的解析状态,确认记录是否已经生效。

3. 确认DNS正常后,再检查Web服务器的虚拟主机配置

当DNS解析正常后,如果访问还是有问题,再看服务器的虚拟主机配置:

如果你用的是Apache:

确保你已经创建了针对blog.example.com的虚拟主机配置文件(比如/etc/apache2/sites-available/blog.example.com.conf),内容类似:

<VirtualHost *:80>
    ServerName blog.example.com
    DocumentRoot /var/www/exampleblog

    # 可选:配置日志路径
    ErrorLog ${APACHE_LOG_DIR}/blog-error.log
    CustomLog ${APACHE_LOG_DIR}/blog-access.log combined

    # 确保目录权限正确
    <Directory /var/www/exampleblog>
        AllowOverride All
        Require all granted
    </Directory>
</VirtualHost>

然后启用这个配置并重启Apache:

sudo a2ensite blog.example.com.conf
sudo systemctl restart apache2

如果你用的是Nginx:

在/etc/nginx/sites-available/下创建配置文件,内容类似:

server {
    listen 80;
    server_name blog.example.com;

    root /var/www/exampleblog;
    index index.html index.htm index.php;

    # 可选:配置日志
    access_log /var/log/nginx/blog.access.log;
    error_log /var/log/nginx/blog.error.log;

    # 处理静态文件等规则(如果需要)
    location / {
        try_files $uri $uri/ =404;
    }
}

然后创建软链接到sites-enabled目录,测试配置并重启Nginx:

sudo ln -s /etc/nginx/sites-available/blog.example.com /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl restart nginx

4. 检查服务器防火墙/安全组

最后还要确认服务器的防火墙或者云服务商的安全组是否开放了80(HTTP)和443(HTTPS,如果用的话)端口:

  • 用UFW防火墙的话:
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw reload
  • 云服务器(比如AWS、阿里云)要去控制台的安全组规则里,添加允许外部访问80/443端口的条目。

额外提醒:DNS生效需要时间

DNS记录修改后,生效时间由你设置的TTL(生存时间)决定,通常是5分钟到24小时不等。如果刚配置完,不妨等个10-15分钟再测试。

内容的提问来源于stack exchange,提问作者Feralheart

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 04:15:39