设置本地 DNS 服务器

设置本地 DNS 服务器

我在本地网络上运行 Apache2 网络服务器。

我可以通过http://我的服务器/。我在服务器上的文件夹中有多个 Web 应用程序,因此当我想要访问 app1 或 app2 时,我会输入http://我的服务器/app1或者http://我的服务器/app2

我希望能够通过以下方式设置我的服务器:http://app1.myserver或者类似这样的好东西。

我敢打赌,为了实现这一点,我需要设置本地 DNS 服务器或使用类似 mod-rewrite 的东西。你会选择哪种方法?我既没有使用 DNS 服务器,也没有使用 mod-rewrite 的经验。

谢谢您的回答。

答案1

Dns 可用于在网络上传播名称。因此,是的,如果您想将 app1.myserver 转换为 <192.168.1.1>,您需要一个 DNS 服务器。但是,如果您是唯一使用此服务器的人(或出于测试目的),您只需修改本地计算机上的 hosts 文件并添加一个条目即可

192.168.1.1 app1.myserver

现在,如果你有 3 个应用程序:app1.myserver、app2.myserver 和 app3.myserver。当你使用以下方式连接到其中一个应用程序时http://app1.myserver,您的浏览器发送一个包含“Host”标头的 HTTP 请求。此 Host 标头的值为“Host: app1.myserver”。

Apache 接收您的 HTTP 请求,查看 Host 标头,并将请求定向到正确的应用程序。这称为虚拟主机,这就是您在创建 Apache 虚拟主机时所做的事情。

因此,您不需要 mod_rewrite、基本的 Apache2 服务器和本地主机文件(或 DNS),一切就绪了。

答案2

可能的解决方案:

正如您描述的场景(在家中进行本地开发),最快的方法是手动设置 DNS 条目在您的机器上。这样您就无需设置 DNS 服务器。(为什么要花 2 个小时设置 DNS,而您可以在 2 分钟内完成...)

您必须手动在网络中的所有计算机(我猜是您的服务器和计算机)的 Hosts 文件中添加条目。如果您的服务器是 192.168.0.10,而您的本地计算机是 192.168.0.9

您必须在两台机器上添加类似于以下内容的条目:

  • 192.168.0.10 app1.我的服务器
  • 192.168.0.10 app2.我的服务器

这样,您就可以访问您的应用程序http://app1.myserver或者http://app2.myserver

怎么做?

  • 如果机器是 Windows,则必须添加条目 C:\Windows\system32\drivers\etc\hosts
  • 如果是 Linux,请转到/etc/hosts

这里有更多不同操作系统的信息:http://en.wikipedia.org/wiki/Hosts_%28file%29

相关内容