You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Ubuntu 18.04 VPS部署网站无法加载问题求助

问题分析与解决方案

从你给出的信息来看,核心问题出在域名解析环节——host命令返回SERVFAIL,说明递归DNS服务器无法从你设置的自定义域名服务器(ns1/ns2.justfitnessbooks.com)获取有效的解析记录。结合你之前用VestaCP时NS正常,现在手动部署只装了Apache和PHP的情况,我整理了以下排查和解决步骤:

1. 先确认自定义NS服务器的可用性

你把域名的NS改成了自己的ns1.justfitnessbooks.comns2.justfitnessbooks.com,但现在你只安装了Apache和PHP,没有运行DNS服务(VestaCP会自带Bind9这类DNS服务,卸载后该服务就消失了),这会导致其他DNS服务器无法从你的NS获取解析数据,直接触发SERVFAIL错误。

验证步骤:

  • 测试你的NS域名本身能否被正常解析:
    host ns1.justfitnessbooks.com
    
    如果返回无法解析或错误IP,说明域名注册商的glue记录(NS域名与对应IP的绑定)没有配置好。
  • 直接测试你的服务器是否提供DNS服务:
    dig @192.188.78.105 justfitnessbooks.com
    
    如果返回空结果或错误信息,说明你的服务器上确实没有运行DNS服务。

2. 两种解决思路:维护自定义NS 或 改用公共NS

思路一:继续使用自定义NS(需部署DNS服务)

如果你坚持用自己的NS服务器,需要在服务器上安装并配置Bind9:

  • 安装Bind9及工具:
    sudo apt update && sudo apt install bind9 bind9utils
    
  • 创建区域配置文件:在/etc/bind/zones目录下新建db.justfitnessbooks.com,添加以下内容(替换为你的服务器IP):
    $TTL    3600
    @       IN      SOA     ns1.justfitnessbooks.com. admin.justfitnessbooks.com. (
                            2024030801      ; Serial(每次修改递增)
                            3600            ; Refresh
                            600             ; Retry
                            604800          ; Expire
                            3600 )          ; Negative Cache TTL
    ; 配置域名服务器记录
    @       IN      NS      ns1.justfitnessbooks.com.
    @       IN      NS      ns2.justfitnessbooks.com.
    ; 配置A记录
    @       IN      A       192.188.78.105
    www     IN      A       192.188.78.105
    ns1     IN      A       192.188.78.105
    ns2     IN      A       192.188.78.105
    
  • /etc/bind/named.conf.local中添加区域引用:
    zone "justfitnessbooks.com" {
        type master;
        file "/etc/bind/zones/db.justfitnessbooks.com";
    };
    
  • 重启Bind服务并检查运行状态:
    sudo systemctl restart bind9
    sudo systemctl status bind9
    
  • 开放UFW的53端口(DNS服务需要TCP和UDP协议):
    sudo ufw allow 53/tcp
    sudo ufw allow 53/udp
    sudo ufw reload
    
  • 回到域名注册商后台,务必添加glue记录:将ns1/ns2.justfitnessbooks.com绑定到你的服务器IP 192.188.78.105,避免解析NS域名时陷入循环。

思路二:改用公共NS(更简单,推荐)

如果不想维护自己的DNS服务,直接把域名的NS改回注册商提供的默认NS,或者改用Cloudflare、Google Domains这类免费公共NS,然后在这些平台上添加A记录指向你的服务器IP 192.188.78.105即可。这种方式不需要你在服务器上运行DNS服务,更稳定省心。

3. 额外排查点

  • 清空本地DNS缓存:执行systemd-resolve --flush-caches后重新测试解析。
  • 追踪解析流程:用dig justfitnessbooks.com +trace命令,可以直观看到解析过程中哪一步出现了故障。
  • 验证Apache配置:直接访问http://192.188.78.105,如果能正常显示网站内容,说明Apache配置没问题,问题完全出在DNS环节。

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

火山引擎 最新活动