2012-08-01 98 views
2

我有只(到目前为止)表现在Firefox中,它重写URL到不同的域(也由我们主办)一个奇怪的问题。然而,重写不会在Safari或Chrome中发生(我正在从MacBook Pro进行测试)。Firefox的URL重写神秘,而不是其他的浏览器

我的设置是这样的:负载均衡器运行HAProxy监听8080内部8080和Apache侦听443. 80上的流量传递到后端,来自Apache的流量被SSL解密,然后发送到localhost:8080,然后传递给后端的端口8443.在后端,来自80的任何流量都被认为是非SSL,但在8443被认为是解密的SSL。后端服务器正在运行Apache。

如果我去https://www.sslexample.com/(以下SSL_DOMAIN)从任何浏览器上的SSL网站,一切的行为,因为它应该。它遇到Apache SSL加速器,被解密,传递给代理,然后发送到后端。如果我转到http://www.nonsslexample.com/(此后称为NONSSL_DOMAIN),再次,所有行为都像预期的那样对于非SSL站点,它会触发代理,然后是后端,并且按预期方式提供非SSL流量。

这里的东西变得奇怪。如果我通过http访问SSL_DOMAIN,那么应该发生的是我重定向到https。对于我们混合的SSL /非SSL域名之一,这可以在所有浏览器中按预期工作。但在Firefox上(有时在我的同事的Safari上,从来没有在Chrome上),如果我通过http访问SSL_DOMAIN,第一件事情就是URL立即被重写为NONSSL_DOMAIN,并被重定向到完全不同的域。

咦?

查看LB上的日志,Chrome和Safari的行为应该像他们应该的那样 - 在端口80上达到磅 - 但是Firefox从未通过端口80上的SSL_DOMAIN命中负载均衡器。但LB看到它的时间,它已被重写。

我在Firefox上安装了Tamper Data插件,结果让我更困惑。初始正确的URL标题永远不会收到回复标题。它立即被不正确的替换。事情就像我打算使用非SSL URL一样。

我看着我的/ etc/hosts文件(因为这是在测试中,我们要覆盖这些领域),一切看起来是正确的。

如果你曾经像这样的问题以前也遇到过,我会就如何调试它的提示非常感谢。

+0

您将哪个域重定向到?听起来很可疑。恶意软件十岁上下。 – 2012-08-01 04:26:54

+1

您是否使用301 rdirect而不是302?使用301,浏览器不需要重新请求他已经完成的任务。尝试退出浏览器,删除302为302并重新检查篡改数据和实时HTTP标头。 – regilero 2012-08-01 07:37:11

+0

尽管我讨厌它,但它似乎是MacOS上与Firefox隔离的一个问题。我无法在网络内部或外部复制Windows或Linux上的问题。 我在我的本地主机上运行wireshark,并在(错误)firefox的情况下,重写发生在任何网络流量发生之前,然后错误的网站被提取。 – 2012-08-02 22:16:11

回答

1

regilero是对的。

我刚刚经历了与Firefox和Safari在Mac OS X 10.9.1同样的问题。他们似乎缓存301重定向,并在下一次请求重写到一次重定向的URL内部重写。

这是相当有趣的,特别是如果你尝试写在你的网络服务器配置测试重定向。

我的解决方案是清空浏览器缓存。然后,将重新从服务器读取重定向。每次我想要重新读取重定向时,我都必须这样做。

相关问题