Apache - 动态子域名

Apache - 动态子域名

我在设置开发环境时遇到了问题。我尝试将所有项目作为子域提供服务。

这是我的 LAN 网络结构:

192.168.1.15 - PC
192.168.1.16 - Laptop
192.168.1.17 - Laptop
192.168.1.20 - Dev Server

我已经使用成功配置了 Apache 动态子域mod_vhost_aliasApache 模块和域名系统DNS 服务器。

这是我的 Apache 虚拟主机的配置:

<VirtualHost *:80>
  VirtualDocumentRoot "/var/www/html/%1/web/"

  <Directory "/var/www/html/%1/web">
    AllowOverride All
    Allow from All
  </Directory>
</VirtualHost>

/etc/dnsmasq.conf 文件

listen-address=127.0.0.1
address=/.dev/127.0.0.1

正如您所看到的,我能够/var/www/html/动态访问位于的项目,而无需创建新的虚拟主机或编辑/etc/hosts文件。一切都运行良好,确实加快了开发过程。我应该说,在我将开发服务器迁移到单独的机器之前,它一直在运行。

问题是什么?如何在本地网络中使此配置正常工作?(我不需要服务器可从互联网访问)。

file我已经在我的 PC 上的Windows 主机中添加了一个条目,将192.168.1.20IP 地址指向dev主机名,但我不知道如何使子域名正常工作。

答案1

最简单的方法可能是在每台机器上编辑 hosts 文件,添加要解析的子域名。hosts 文件的格式非常简单

ip.add.re.ss    hostname.tld sub1.hostname.tld sub2.hostname.tld

或 ip.add.re.ss hostnname.tld ip.add.re.ss sub.hostname.tld

所以你可以

192.168.1.20    mydev.lan test.mydev.lan deploy.mydev.lan

或者

192.168.1.20    mydev.lan
192.168.1.20    test.mydev.lan deply.mydev.lan

这里要注意的是,您将获得返回的主机名的第一个匹配项。

或者,您可以允许 dnsmasq 监听服务器的 IP 地址并将其设置为其他机器的 DNS 服务器。

相关内容