尝试使用自托管 DNS 在 apache2 上使基于名称的虚拟主机工作

尝试使用自托管 DNS 在 apache2 上使基于名称的虚拟主机工作

我正在阅读一本有关 Ubuntu Server 的书,在连接好所有网络、DHCP、DNS、NTP 等之后,我们就需要创建一个 apache2 网络服务器了。

我遵循了所有的指示,但当我们到达多虚拟主机部分,我似乎无法让它工作。

由于只有一个网络接口,我选择了基于命名的虚拟主机我将列出我所有的 DHCP、DNS 和 Apache2 配置,以便每个人都能轻松找出问题所在。

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

网站

对于网站配置,我创建了一个名为的文件000-virtual-hosts.conf,其中包含我想要工作的虚拟主机的配置。

/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

你可以说我菜鸟,但我不知道它不起作用的原因是否因为我不拥有mywebsite.commyotherwebsite.com域名,但我认为它会遵循书中的示例,并且将通过端口 80 专门请求域名,并在这篇文章中进一步添加对我的服务器 IP 的解析,无论我是否拥有域名,它都是本地的。我认为可能是因为它们指向同一个/var/www/html文件,这可能是问题所在。我在尝试使其工作之前启用了它们,sudo a2ensite 000-virtual-hosts.conf&& sudo systemctl reload apache2

书中曾写道:“如果您使用带有虚拟主机的域名,那么这只有在您设置网络使得文件中引用的域名解析为您服务器的 IP 地址时才会起作用。 [...] 如果您正在运行自己的 DNS 服务器,则可以在那里添加 A 记录。“因此我添加了此行/etc/bind/net.local.lan并更新了serial数字,否则 DNS 将不会接受新主机。

mywebsite.com IN A 192.168.1.247

但我认为问题是我真的不知道自己在做什么/做错了什么。

这是捕获的日志/var/log/apache2/error.log,我不知道这些日志是否包含连接失败,mywebsite.com因为它们应该是默认.conf文件的,但我愿意与你分享它们,以防你需要它们。

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

相关内容