我在本地机器上进行开发,我需要在一个主机文件上运行一个浏览器,在另一个主机文件上运行另一个浏览器。
一个浏览器会运行主机文件,将 domain.com 重定向到我的本地计算机。第二个浏览器会运行主机文件,将 domain.com 重定向到外部产品服务器。
这可能吗?
顺便说一句,我无法将本地机器重命名为 this.domain.com
我正在运行 mac os x
答案1
警告:我了解许多 Unices,但不太了解 Darwin/MacOS Xvery,因此一些细节可能有所不同......
您可以通过几种方式实现您的目标,但不一定通过您描述的方法:
- 为第二个浏览器运行虚拟机
- 为第二个浏览器运行“虚拟化应用程序”(我不知道 MacOS X 是否存在应用程序虚拟化选项)
- 在 chroot 环境中运行第二个浏览器,不过你需要在 chroot 中填充操作系统的很多部分,才能运行图形浏览器之类的程序
- 配置一个浏览器使用在另一台具有不同查找信息的机器上运行的代理
- 挂钩某些东西来改变 gethostbyname() 调用的响应,例如
LD_PRELOAD=/my/special/libresolv.so /path/to/browser
(与任何其他应用程序一样,AIUI 不会直接读取 /etc/hosts,而是调用 gethostbyname(),由 libresolv 处理,后者将读取 /etc/hosts 或与 DNS 服务器或其他名称查找工具对话)
MacOS X 可能有“沙盒”浏览器,通常用于确保安全,但它们可能基于浏览器和操作系统之间的抽象层,为您提供有用的起点。