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

自建DNS环境下Apache2基于名称的虚拟主机无法正常工作的求助

自建DNS环境下Apache2基于名称的虚拟主机无法正常工作的求助

大家好,我正在读一本关于Ubuntu Server的书,已经把网络、DHCP、DNS、NTP这些组件都配置好了,现在卡在Apache2虚拟主机这一步——基于名称的虚拟主机怎么都跑不起来。我只有一块网卡,所以选的是基于名称的方案,下面把所有相关配置都贴出来,麻烦帮我看看哪里出问题了!

DHCP配置

我的DHCP配置文件是/etc/dhcp/dhcpd.conf,内容如下:

default-lease-time 43200;
max-lease-time 86400;
option subnet-mask 255.255.255.0;
option broadcast-address 192.168.1.255;
option domain-name "local.lan";
authoritative;

subnet 192.168.1.0 netmask 255.255.255.0 {
    range 192.168.1.100 192.168.1.240;
    option routers 192.168.1.1;
    option domain-name-servers 192.168.1.1;
}

DNS配置

全局选项文件 /etc/bind/named.conf.options

options {
    forwarders {
        8.8.8.8;
        8.8.4.4;
    };
    dnssec-validation auto;
    listen-on-v6 { any; };
};

本地域配置 /etc/bind/named.conf.local

zone "local.lan" IN {
    type master;
    file "/etc/bind/net.local.lan";
};

域记录文件(初始版本)/etc/bind/net.local.lan

$TTL 1D
@ IN SOA local.lan. exampleemail.local.lan. (
    202212152; serial
    8H ; refresh
    4H ; retry
    4W ; expire
    1D ) ; minimum
IN A 192.168.1.1
;
@ IN NS lenovo.local.lan.
lenovo     IN  A   192.168.1.1 #my server

Apache2虚拟主机配置

我创建了/etc/apache2/sites-available/000-virtual-hosts.conf来配置虚拟主机,内容如下:

<VirtualHost *:80>
    ServerName mywebsite.com
    DocumentRoot /var/www/html
    ErrorLog ${APACHE_LOG_DIR}/mywebsite_error.log
    CustomLog ${APACHE_LOG_DIR}/mywebsite_access.log combined
</VirtualHost>

<VirtualHost *:80>
    ServerName myotherwebsite.com
    DocumentRoot /var/www/html
    ErrorLog ${APACHE_LOG_DIR}/myotherwebsite_error.log
    CustomLog ${APACHE_LOG_DIR}/myotherwebsite_access.log combined
</VirtualHost>

# vim: syntax=apache ts=4 sw=4 sts=4 sr noet

我已经执行了启用命令:sudo a2ensite 000-virtual-hosts.conf && sudo systemctl reload apache2,而且也把默认的站点配置禁用了。

问题排查过程

一开始我怀疑是不是因为我没实际拥有mywebsite.com和myotherwebsite.com这两个域名,但按照书里的例子,我以为只要本地能解析到服务器IP就能正常工作。另外我也想过是不是两个虚拟主机都指向同一个/var/www/html目录导致的问题?

后来看到书里说:“如果虚拟主机用了域名,必须确保域名能解析到服务器IP……如果自己跑DNS服务,就要添加对应的A记录”,于是我在/etc/bind/net.local.lan里加了一条记录并更新了序列号:

mywebsite.com IN A 192.168.1.247

但还是不行,我感觉自己可能哪里理解错了,完全摸不着头脑。

Apache错误日志

/var/log/apache2/error.log里的日志:

AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message
[Fri Dec 16 01:32:24.187718 2022] [mpm_event:notice] [pid 32022:tid 139897582640192] AH00489: Apache/2.4.41 (Ubuntu) configured -- resuming normal operations

后续修改尝试

我后来修改了/etc/bind/net.local.lan(之前笔误写成net.local.net),更新后的内容:

$TTL 1D
@ IN SOA local.lan. exampleemail.local.lan. (
    202212154; serial
    8H ; refresh
    4H ; retry
    4W ; expire
    1D ) ; minimum
IN A 192.168.1.1
;
@ IN NS lenovo.local.lan.
lenovo     IN  A   192.168.1.1
mywebsite IN A 192.168.1.247
myotherwebsite IN A 192.168.1.247

现在用IP访问80端口能看到页面,但输入mywebsite或者mywebsite.local.lan都找不到站点,完全不知道怎么通过域名访问本地页面。

Dig命令查询结果

查询 mywebsite.local.lan

; <<>> DiG 9.16.1-Ubuntu <<>> mywebsite.local.lan
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 17696
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 65494

;; QUESTION SECTION:
;mywebsite.local.lan.           IN      A

;; Query time: 4 msec
;; SERVER: 127.0.0.53#53(127.0.0.53)
;; WHEN: Wed Dec 21 12:02:17 PST 2022
;; MSG SIZE  rcvd: 48

查询 myotherwebsite.local.lan

; <<>> DiG 9.16.1-Ubuntu <<>> myotherwebsite.local.lan
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 59264
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 65494

;; QUESTION SECTION:
;myotherwebsite.local.lan.      IN      A

;; Query time: 8 msec
;; SERVER: 127.0.0.53#53(127.0.0.53)
;; WHEN: Wed Dec 21 12:02:19 PST 2022
;; MSG SIZE  rcvd: 53

网络里另一台电脑执行dig命令的结果也差不多,只是udp数值不一样。

备注:内容来源于stack exchange,提问作者Jimmy

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.23 08:00:30