因为在iPad上我们不能编辑hosts文件(除非越狱),那么我们如何任意重定向网页流量到另一个URL?
这对于开发使用虚拟主机配置的网站,并且想要重定向到开发机器时非常重要。
(这与此问题有关:我可以编辑iPad的hosts文件吗?)
因为在iPad上我们不能编辑hosts文件(除非越狱),那么我们如何任意重定向网页流量到另一个URL?
这对于开发使用虚拟主机配置的网站,并且想要重定向到开发机器时非常重要。
(这与此问题有关:我可以编辑iPad的hosts文件吗?)
绕过iPad的限制的方法是使用HTTP代理服务器,比如在另一台机器上运行的Squid,并可以编辑主机文件。
在iPad中,通过设置 -> 网络 -> Wi-Fi -> (您的网络),有一个可以手动设置的HTTP代理设置。在此处输入代理信息即可。
设置完成后,您就可以像更改主机文件一样操作iPad了。
我发现您只需在iPad上修改Wifi设置,将开发机的IP地址作为HTTP代理地址,并配置开发机作为代理(如上述文章中所述):
这样,只需输入虚拟主机的URL(例如local.mywebapp.com
),您就可以在iPad上访问您的网络应用程序了。这种方法简单快捷,但与Will Koehler的解决方案不同的是,您将无法从iPad上访问互联网。但是大多数情况下这并不是真正的问题,因为您只想测试自己的应用程序。
80
。 - Epoc在运行代理服务器(如Fiddler或Charles)的计算机上设置hosts文件,并配置iPad将该计算机用作HTTP代理。
以下是使用Fiddler执行此操作的说明: http://conceptdev.blogspot.com/2009/01/monitoring-iphone-web-traffic-with.html
而这是针对Charles的: http://www.ravelrumba.com/blog/ipad-http-debugging/
/etc/hosts
文件。添加指向您的网站的服务器本地IP。
127.0.0.1 dev.mysite.com
当Apache代理尝试解析来自您的iPhone / iPad的请求时,将使用此主机文件。现在让我们设置Apache部分...sudo apt-get install libapache2-mod-proxy-html
sudo a2enmod proxy proxy_http proxy_html
sudo apache2ctl graceful
接下来创建一个虚拟主机文件,例如/etc/apache2/sites-available/my-proxy
Listen *:8080
<VirtualHost *:8080>
ProxyRequests On
<Proxy *>
Order Deny,Allow
Deny from all
Allow from 192.168.1.0/24
</Proxy>
</VirtualHost>
启用虚拟主机,并重启Apache:
sudo a2ensite my-proxy
sudo apache2ctl graceful
接下来进入设置 > Wi-Fi > 您的网络,并配置"手动"代理。输入您Apache服务器的IP和端口即可完成!
<Proxy *>
块确保只有在我的本地网络上的人才能使用该代理。如果您使用转发代理,则严格限制访问是必不可少的。此时ip2cidr页面将非常有用。(作为额外措施,我的防火墙会阻止:8080端口的访问。)
我需要在iPad上测试正在开发的Web应用程序。我在我的开发机上使用Apache运行Web应用程序,因此我找到的最简单的解决方案是使用Apache mod_proxy。
我的开发机在家庭网络中可见,名称为sapphire.local。
我正在测试的Web应用程序托管在开发机上的demo.cms.dev上(我正在使用POW)。
为设置代理,我将以下部分添加到httpd.conf中。
<VirtualHost *:80>
ServerName sapphire.local
ProxyPass / http://demo.cms.dev/
ProxyPassReverse / http://demo.cms.dev/
ProxyPassReverseCookieDomain .cms.dev .sapphire.local
ProxyPreserveHost Off
</VirtualHost>
此方法将sapphire.local上的传入请求路由到demo.cms.dev。该方法一次只适用于一个应用程序。我认为您可以使用不同的端口来设置其他应用程序。也许有人有更好的解决方案?
如果您的网络中没有内部DNS服务器,请设置一个,并设置A记录。然后确保DHCP设置为返回所述DNS服务器。
yum install squid
。 - Abhishekapt-get install squid
安装Squid。 - Jess Telfordsudo service squid3 reload
命令来重新启动服务。此外,在我的开发服务器上可能存在配置问题,需要在iPad上手动输入"http://"才能正确解析地址。 - Andy Giesler