使用移动设备testing网站的本地dns

如果这个话题已经讨论过了,我不知道从哪里开始提前抱歉。

我通常使用我的笔记本电脑开发网站作为开发服务器,最近我需要testing一个网站使用各种移动设备,可以通过无线连接。 没有真正的AP,我使用笔记本电脑的无线网卡build立了一个ad-hocnetworking,设备可以正确浏览互联网并访问笔记本电脑的networking服务器。 设置如下:

  • 子网:192.168.1.0/24
  • 网关(有线adsl路由器/调制解调器):192.168.1.1
  • 笔记本电脑:192.168.1.64(eth0,有线,如果连接到网关)和192.168.1.32(eth1,wifi如果有点桥接到eth0)
  • 移动设备(对于所有人来说都是一样的,为了简单起见,我只使用其中的一个):192.168.1.11,默认gw 192.168.1.1

现在,如果我从移动设备打开192.168.1.32或192.168.1.64,我正确地得到我的Apacheconfiguration的默认主机。 但是,我通常使用虚拟主机,其中一个原因是Drupal特有的多站点实现。 对于那些不知道这是如何工作的人,Drupal接受请求的主机名,并在其网站/子目录中search适当的configuration文件。 所以,例如,假设我要求www.example.com,那么Drupal将在以下目录中search一个configuration文件:

sites/www.example.com/ sites/example.com/ sites/com/ sites/default/ 

因此,我决定采用以下风格的虚拟主机:如果我正在使用的网站可以通过www.example.com访问,我build立了一个sites / www.example.com /目录,并为本地创build一个虚拟主机。 www.example.com,所以Drupal没有find它的麻烦。 我曾经被告知这从DNS的angular度来说是不理想的,因为我必须为example.com创build一个权威的条目,并且只有当我应该访问本地副本时才会打开Bind,这很奇怪。 但是,如果这是我能够遵循的唯一途径,那么我们还是会遇到与Bindconfiguration有关的一些问题,因为我找不到任何以清晰,友善的方式告诉我如何设置这样一个条目的指南。 另一方面,我想知道是否可以为本地设置一个权威的条目,所以我可以访问www.example.com.local并以某种方式告诉(我甚至不知道这是否可能)Apache把www.example.com,而不是www.example.com.local在相关的环境variables。

无论如何,我有一个最后的问题,当我以高度冗长的debugging模式启动绑定,并将192.168.1.32作为设备的主要dns时,输出不会说任何有关从设备发出的请求绑定,所以我甚至不确定它发挥作用。

正如你所看到的,在这些事情上我是一个完全的白痴,但我渴望学习,所以任何帮助/指针将不胜感激。

对不起,我经过大量的实验终于find了解决办法。 首先,这里是我用于本地的区域文件。 域:

 $TTL 1800 @ IN SOA local. root.porto.local. ( 2010061500 ; serial 7200 ; refresh 3600 ; retry 604800 ; expire 1800 ; default_ttl ) NS porto.local. $ORIGIN local. porto IN A 192.168.1.32 www IN A 192.168.1.32 

我可以添加像这样的行

 www.example.com IN A 192.168.1.32 

这样可以查询www.example.com.local,这是一回事。

为了考虑到Drupal的怪异行为,我实际上find了一个解决scheme,它不妨碍我在使用本地副本时使用真正的远程www.example.com工作,除了必须为本地设置区域www.example.com和www的主机线,导致奇怪的和长的www.local.www.example.com …坦率地说,有点太多,以保持我的心理健康。 我会去当地的。 方式和s / .local //我将要部署到生产服务器的数据库转储。

感谢大家回复。

另一个解决scheme是在桌面计算机上设置一个小代理(使用多个虚拟主机开发和托pipe站点)。 例如,在Windows上,您可以使用Fiddler 。 如果你正在运行Mac OS X或Linux,你可以尝试一下Charles (但它不是免费的)。

在Fiddler下,您必须在选项窗口的“连接”选项卡上激活“允许远程计算机连接”选项。

那么你必须configuration你的移动设备使用代理。 这可以很容易地在移动设备的WiFi设置中完成。

我期望当你在你的本地Web服务器上创build你的VirtualHost时,你也可以编辑你的hosts文件,这样你就可以在本地浏览你的站点了。 现在,你想让你的移动设备也这样做。

这是代理到位的地方。 代理能够读取本地主机文件( C:\Windows\System32\drivers\etc\hosts/etc/hosts ),这意味着您的移动设备将被自动路由到您的本地Web服务器。

这个解决scheme的另一个有趣之处在于,您可以模拟缓慢的stream量networking,并清楚地看到您的移动设备实际下载的内容(在使用媒体查询和响应式图像时非常有用)。

我发现这篇文章很好地解释了如何做: 在移动设备上使用本地主机名testingMac OS X网站

老实说,你可能过于复杂的情况,你并不需要绑定,因为你可以在你的主机文件中input192.168.1.32 example.com 。 如果你想学习如何使用绑定,虽然尝试看看会发生什么,当你在NSlookup中查找域名,看看它告诉你什么,这可以帮助很多。