在 Virtualbox 中设置 Debian Web 服务器以支持子域名

在 Virtualbox 中设置 Debian Web 服务器以支持子域名

我是 Linux 新手,我想设置一个 Virtualbox 网络服务器来保持 OSX 清洁。

我已经使用 Apache2、Avahi 和 ssh 设置了无头 Debian 服务器。

我希望服务器执行以下操作:

  • 无论有没有本地网络(即没有路由器)都可以访问
  • 不需要对主机上的 hosts 文件进行任何修改。
  • 能够解析任一子域名dev-vm.local或者dev-vm.com例如。

现在如何运作

  • Apache 默认响应192.168.2.13dev-vm.local
  • 我可以访问子域名,如果我添加192.168.2.13到我的 OSX 主机文件,但我想避免这种情况。
  • 我可以通过 ssh 连接到192.168.2.13但不是vboxnet0IP(10.0.0.20)。

如果我输入dev-vm.local在我的浏览器中,我获得了服务器根目录,这很好,但如果我尝试访问测试.dev-vm.本地域名无法解析。

我的 ghost 文件如下

<VirtualHost *:80>
    DocumentRoot /var/www/test
    ServerName test.dev-vm.local
    ServerAlias tester.dev-vm.local
    ServerAlias test.vm.dev

    <Directory /var/www/test/>
            Options +FollowSymLinks Indexes
            AllowOverride All
            order allow,deny
            allow from all
    </Directory>

正如所说,它响应测试.vm.dev如果我添加

192.168.2.13 test.vm.dev

到 OSX 的主机文件。

确实如此不是回应测试.dev-vm.本地也不测试器.dev-vm.local. 我更喜欢后者。

Virtualbox 设置了

  • eth0 上的桥接适配器(混杂模式:拒绝)
  • eth1 上的 vboxnet0(混杂模式:全部允许)

在 Virtualbox 设置下,vboxnet0 具有以下属性

Adapter:
IPv4Adress 10.0.0.2
IPv4 Network Mask 255.255.255.0

DHCP Server:
Server Address: 10.0.0.1
Server Mask: 255.255.255.0
Lower Address Bound 10.0.0.20
Upper Address Bound 10.0.0.20

在来宾 Web 服务器上我有以下设置:

在 /etc/网络/接口:

# The loopback network interface
auto lo eth0 eth1
iface lo inet loopback

# The primary network interface
allow-hotplug eth0
iface eth0 inet dhcp

iface eth1 inet dhcp

/etc/apache2/apache2.conf 添加了以下内容:

ServerName localhost

抱歉,如果有什么不清楚,但由于我是新手,我不知道是否包含了必要的信息。

但如果有人能给我指明正确的方向我将不胜感激!

答案1

为了让您的 Web 服务器能够处理子域请求,查询应该能够到达它。但是,据我所知,您只是将 Web 服务器的主机名添加到您的 hosts 文件中。因此,带有子域地址的请求不会被定向到虚拟机。您有两个选择。您应该将所有子域添加到您的 hosts 文件中,这可能是一个简短而简单的解决方案,或者设置一个 DNS 服务器来处理所有虚拟环境地址。如果您只有一个虚拟机,那么 DNS 解决方案会更昂贵,但如果您有许多具有大量子域地址的虚拟机,那么这可能是一个解决方案

相关内容