Eri*_*sch 41 browser portable hosts-file
我有许多临时和测试服务器,我需要不断修改我的主机文件才能访问(它们取决于域名,所以我必须更改主机文件才能使它们工作)。
我觉得这很烦人。我想为我想要使用的每种网站设置某种便携式浏览器。是否有任何版本的图形 Web 浏览器(包括基于其他浏览器渲染引擎的浏览器)可以执行此操作?
通过这种方式,如果我想测试暂存,我可以简单地启动已经配置为使用暂存的实例。
有任何想法吗?
编辑:重要的功能是能够同时运行两个浏览器,都浏览到some-address.com
,但一个浏览1.2.3.4
器将请求定向到服务器 ,另一个浏览器将请求定向到服务器5.6.7.8
。
编辑:(3/16/14)
这个问题是几年前提出的,我仍然不知道这样做的体面方法。让我试着进一步解释一下,因为人们似乎误解了这个问题。这不是仅通过使用代理服务器就可以轻松解决的问题。我想可能可以在代理服务器中编写大量规则来解决问题,但对于一个简单的问题来说,这是一个非常复杂的解决方案。
所以要澄清:
共有三个 Web 服务器。生产、测试和开发。每个都运行一个多租户应用程序,该应用程序根据用于访问它的主机名进行自定义。从概念上讲,这类似于允许多个站点在同一个服务器实例上运行的内容管理系统或博客引擎。您只需将主机名指向服务器,通过 HTTP 1.1 主机名映射访问它的主机名就是它显示的站点。
任何简单地重写主机文件的解决方案都不起作用,因为需要同时运行多个浏览器窗口到不同的站点、生产、开发、测试等......所以简单地不断更改主机文件不会工作,因为它会影响所有浏览器实例。如果您更改一个浏览器的映射,那么其他浏览器现在也会映射到该服务器,因此任何后续请求都将转到错误的服务器。
我正在寻找的是一种强制此浏览器实例使用此主机文件以及该浏览器实例使用该主机文件的方法,例如通过命令行参数。我什至不在乎是否需要安装浏览器的多个副本。
这对于 firefox 便携式可能是可行的,因为我认为它为每个安装的副本使用自己的配置文件,但问题是用于管理站点的第三方软件不适用于 firefox(站点本身可以,但管理工具不,它们在 chrome、IE 和 Opera 上运行良好,但是……我无法访问源代码来修复它)。
Dav*_*ish 19
鱿鱼为我解决了这个问题。我认为许多代理服务器可以做同样的事情。
具体来说,我必须安装 Squid。然后更改 squid.conf 以便它访问备用主机文件。这是您要更改的行:
#hosts_file /etc/hosts
Run Code Online (Sandbox Code Playgroud)
就我而言,我使用了hosts_file /etc/hosts-squid
. 我创建了该/etc/hosts-squid
文件并更改了 hosts-squid 文件,以便我可以访问给定 URL 所需的新 IP 地址。这就是我配置 Squid 代理服务器所需要做的全部工作。
然后我创建了一个命令来使用代理设置启动我的浏览器。我用了:
chromium-browser --proxy-server=localhost:3128
Run Code Online (Sandbox Code Playgroud)
有效地运行该命令为我提供了一个正在运行的 Chromium 实例,它可以访问我创建的 hosts-squid 文件中的域设置。
我还能够使用多个 Squid 实例设置更多代理服务器,以便在同一台计算机上访问生产、开发和本地网站。关于如何运行多个 Squid 实例的说明在这里。我还写了一篇博文,更详细地解释了问题和解决方案。
我相信您要求为每个包含自己的主机文件的浏览器设置一个虚拟环境。
一种解决方案可能是使用Sandboxie设置一个单独的沙箱,每个沙箱都包含自己的主机文件。浏览器无需安装到沙箱中即可使用主机文件,只需从沙箱内部启动即可。可以创建桌面快捷方式以从沙箱内启动浏览器。
缺点是浏览器将与真实文件系统隔离,例如从 Internet 下载文件时,但 Sandboxie 包含将此类文件复制到沙箱外的机制。
不幸的是,同时在多个沙箱中运行程序的功能仅在 Sandboxie 的付费版本中可用(一年许可证 15 欧元加税,供个人在家使用)。可以使用免费版本进行可行性测试。(编辑:Sandboxie 现在是免费软件。)
对于 Linux 用户,类似的产品有:
您可以使用firefox + HostAdmin自动化更改主机文件的过程
HostAdmin 是一个 Firefox 插件,可以帮助您修改 Hosts 文件、切换域名-IP 映射。HostAdmin 可以通过增强的 Hosts 文件语法理解您的 Hosts 文件。此外,每当您更改 Hosts 文件时,HostAdmin 都会自动刷新您的 DNS 缓存,甚至可以手动刷新。
配置示例
#==== Project 1
# 127.0.0.1 localhost1
127.0.0.1 localhost2
127.0.0.1 localhost3
#====
#==== Project 2
# 127.0.0.1 localhost1
# 127.0.0.1 localhost2
# 127.0.0.1 localhost3
Run Code Online (Sandbox Code Playgroud)
更多信息请访问https://addons.mozilla.org/en-US/firefox/addon/hostadmin/
要在 Linux 中同时独立地运行两个 Firefox 浏览器实例,请使用以下脚本创建多个启动器。还要在所有 firefox 中安装该插件。
火狐1
#!/bin/bash
th="/home/$USER/tmp/p1"
mkdir -p "$th"
export HOME="$th"
firefox -no-remote
Run Code Online (Sandbox Code Playgroud)
火狐2
#!/bin/bash
th="/home/$USER/tmp/p2"
mkdir -p "$th"
export HOME="$th"
firefox -no-remote
Run Code Online (Sandbox Code Playgroud)
您可以使用浏览器中的配置文件选项 ( firefox -P
) 将本机配置文件用于不同的设置,并且可以同时使用。
小智 2
我知道这不是您所要求的,但临时解决方案可能是编写一个批处理脚本来交换主机文件,然后启动浏览器。
至少它会最大限度地减少你正在做的工作。
或者您可以在主机文件中将这些服务器命名为完全不同的名称,这样您就不必从一开始就切换它。
归档时间: |
|
查看次数: |
17596 次 |
最近记录: |