我刚刚安装了带有 IE9 的 Windows 2008 R2 终端服务器,打算用于测试。不幸的是,网络人员告诉我,他们所有的机器上都有本地 Apache,他们都编辑了主机文件,其中有很多条目指向 127.0.0.1(环回)。
这在他们自己的机器上运行良好,可以让他们指向自己的 apache 以查看他们在 Windows XP 机器上开发的结果。
当然,当他们登录到终端服务器时,他们将无法访问这些内容,因为主机文件是基于机器的,并且多个用户可以同时登录到终端服务器。
我一直在想办法,当用户 A 登录到终端服务器时,会加载一组他们独有的规则(在他们可以编辑的文件或位置中),当他们输入 test.site1.com 时,它会指向他们计算机的 IP 192.168.1.1,而用户 B 输入 test.site1.com 时,它会指向用户 B 的计算机 IP 192.168.1.2,这是当两个用户同时登录到终端服务器时(假设为 192.168.1.10)。
理想情况下,希望避免对本地 Apache 进行太多更改(除了确保它们监听其实际的 LAN IP,而不仅仅是 127.0.0.1)。
据我所知,Hosts 文件已不存在... 是否有一个聪明的代理程序可以做到这一点?我可以在终端服务器上安装一个可以接受基于用户的配置文件的程序?或者按照下面建议的 DNS,好主意,但唯一的问题是为相应的用户提供相同主机名的不同 IP。
对于用户 A,test.site1.com 192.168.1.1 对于用户 B,test.site1.com 192.168.1.1
此时用户 A 和用户 B 都登录到同一个终端服务器。
答案1
一个聪明的代理程序可以将名称解析为 IP 地址?是的,它被称为 DNS 服务器。在内部设置一个(假设您已经有一个),添加相关的 A 记录,然后就大功告成了!
编辑
这里有一个想法,尽管可能比您希望的更复杂:将 W2K8R2 RDS 的远程桌面 IP 虚拟化功能与 BIND DNS 的“视图”功能(我认为在这种情况下是匹配客户端)结合使用,根据每个开发人员的 RDS 会话 VIP“呈现”不同的 A 记录。请注意,我没有使用过远程桌面 IP 虚拟化功能,我一生中从未见过 BIND DNS 服务器,但我认为这对您有用。
http://www.oreillynet.com/pub/a/oreilly/networking/news/views_0501.html
答案2
事实证明我需要一个反向代理,我手头有一个 TMG 服务器,所以我创建了几个规则:
网站发布规则 HTTP 设置一个内部 Web 侦听器,在内部接口上进行侦听,并使用摘要式和集成式 HTTP 身份验证。 操作允许从任何地方到本地主机(仅占位符)计算机名称或 IP 地址(如果内部站点名称不同或无法解析则必填):勾选“转发原始主机头而不是实际主机头(在内部站点名称字段中指定)公共名称(输入该 Web Dev 机器上的所有测试域名)路径 /* 将执行或根据需要自定义身份验证委派:无委派,但客户端可以直接进行身份验证用户创建一个用户,指定该计算机的 Web Dev 的 Windows 用户帐户。
复制并粘贴,更改用户,并将 IP 地址更正为 Web Dev 机器的 IP。
然后,在终端服务器上,编辑 hosts 文件并将所有这些测试域指向 TMG 服务器的 IP 地址。确保所有这些 URL 也位于 IE 中的本地安全组中,以便它能够通过登录。
终端服务器上的用户 A 输入http://local.website-prototype.net,终端服务器转到 TMG,传递其登录信息,TMG 查看规则以找到域用户的匹配规则,然后将其重定向到其自己机器的 IP 以获取其 URL。终端服务器上的用户 B 输入http://local.website-prototype.net或者其他情况,同样的事情发生,TMG 挑选出针对用户 B 的规则并指向用户 B 的机器/ip。
效果很好,唯一的缺点是当 Web 开发人员想要添加另一个 URL 时,需要将其添加到终端服务器的主机文件中,并添加到 TMG 中的用户特定规则中。
我可以授予他们编辑 hosts 文件的权限...他们非常精明,但不幸的是不能授予他们 TMG 盒的全部权限....除非我们为他们设置一个单独的 TMG。
或者,我需要考虑在别的软件中创建相同的配置,Squid?理想情况下,可以让我拆分配置,以便 Web 开发人员可以编辑他们自己的小部分。
答案3
为什么不直接创建一个包含每个人的测试域和 IP 的 hosts 文件?或者,您可以通过向 DNS 添加区域来更正确地执行此操作。
最后,他们是否可以只使用他们的机器主机名?