IIS和Apache2之间的502代理错误

时间:2012-09-06 15:08:38

标签: apache iis proxy mod-proxy

我目前正在apache2实例SUSE上运行@EC2。作为我网站的一部分,我的数据使用mod_proxyREST通过IIS点击运行Proxy/ReverseProxy的{​​{1}}服务器。

设置vhosts,启用mod_proxy并建立我的配置后,我发现我经常遇到502错误。这些错误属于Proxy ErrorBad Gateway风格。在做了一些相当可观的谷歌后,我发现IISapache终止其连接的方式存在差异,这导致了错误。设置以下环境变量后,性能显着提高:

SetEnv force-proxy-request-1.0 1
   SetEnv proxy-nokeepalive 1
   SetEnv proxy-initial-not-pooled 1

我想知道的是为什么这会起作用,理想的配置会是什么样子。

我的理解是,用Env变量:
 我强迫HTTP 1.0 request(这会使终止期望标准化)
  不保持任何联系   不使用任何池连接
正确?

如果我需要使用池化连接怎么办?如果我想使用keep-alives怎么办?简而言之,我正在寻找最佳实践来替换我目前使用的牙签和胶水解决方案

2 个答案:

答案 0 :(得分:2)

我看到这个问题已经存在了一段时间,所以我想我会投入2美分。无论如何我的经验更多......

据我所知,这三个env变量或设置在生产中都可以。您对它们的理解也是正确的。当我遇到这个问题时,我发现this链接在问题的解释中是有用的。它只发生在后端的IIS .... 请注意,初始池设置会影响Http / 1.0客户端的性能......我从来没有注意到任何东西,但是,单独的iis服务器有64GB的ram和机器上的几个核心...所以我承认我可以'确保“它根本没有影响”,我所知道的是“有足够的资源,你没有问题”......

老实说,但是,你的牙签声明,我知道实现这个的几十个生产环境......你可以设置其他东西并玩弄apache并改变它以实现更长的超时等,但我已经设置了这些设置,它只是工作...

我想我只是想说你不应该在这些设置上失眠。在我看来,虽然我不知道它们是否是最佳实践,但它们是安全的......

抱歉,我帮不了多忙......

干杯 罗宾

答案 1 :(得分:0)

我认为我收到此错误是因为服务器耗尽了硬盘空间。不寻常,但它发生了。