我在设置开发环境时遇到了问题。我尝试将所有项目作为子域提供服务。
这是我的 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.20
IP 地址指向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 服务器。