仅使用 ip 服务虚拟主机

Serving virtual hosts with ip only

我在本地设置了一个服务器,我希望能够在不指定域的情况下访问它所服务的站点。如果你需要知道为什么滚动到底部。

我通过这样配置虚拟主机,设法使用 IP 为一个站点提供服务:

ServerName 192.168.2.10
DocumentRoot /var/www/site1/public

这很好用,而且我的服务器仍然可以 运行 通过相应的虚拟主机以基于域的方式为所有其他站点提供服务。问题是,我不确定如何在不使用域的情况下通过 IP 为多个站点提供服务。

如果有人能在这里列出我的选择,我将不胜感激。感谢您抽出宝贵时间。


我为什么要这样做?
首先,我很好奇它是否真的可以完成。具体来说,如前所述,我在本地为该站点提供服务,下载该应用程序的客户端只有在实际出现在该本地网络时才能访问它。尽管我可以为它们中的每一个配置 hosts 文件,但这听起来很乏味并且在实践中不可行,尤其是因为它们中的许多都是移动设备并且过程很漫长。

您必须为 Apache 提供一种方法来区分您的不同站点。您可以通过以下方式做到这一点:

  1. DNS,域名。这将需要使用 ServerName 值设置 VirtualHost 配置以匹配每个域。但你不想这样,请继续阅读。

  2. IP 地址。您的服务器上可以有多个地址,并让 Apache 监听每个地址。前任。听 1.1.1.1:80 和 2.2.2.2:80。然后每个虚拟主机配置为服务一个地址。

  3. 端口。如果你只能有一个IP地址,你可以用端口拆分网站。在这种情况下,您将收听 1.1.1.1:80 和收听 1.1.1.1:81。然后,当您的客户访问这些站点时,他们将使用 http://1.1.1.1:80 or http://1.1.1.1:81

其他建议,

  • 在你的机器上,你需要设置你的 IP,在你的防火墙上打开你的地址和端口,如果需要设置路由,...
  • 使用单独的日志文件设置每个 VirtualHost,这将有助于调试问题。
  • 除非内容相同,否则为您的 DocumentRoot 每个 VirtualHost 设置一个目录。