Nginx + Passenger:当在GETvariables中传递urlencoded URL时,Nginx的502错误网关

这是一个不起作用的URL的例子:

http://domain/do?url=http%3A%2F%2Fwww.linkedin.com%2Fin%2Fperson http://domain/do?url=http%3A%2F%2Fwww.linkedin.com%2F 

但是,下面的URL可以工作:

 http://domain/do?url=http%3A%2F%2Fwww.linkedin.com 

而且,这只发生在Nginx上,使用Passenger和Apache一起工作,但是我们在我们的生产机器上使用了Nginx。

这里是Nginx的错误日志中的条目:

 2009/12/01 09:30:51 [error] 6407#0: *136 upstream prematurely closed connection while reading response header from upstream, client: xxx.xxx.xxx.xxx, server: domain, request: "GET /do?url=http%3A%2F%2Fwww.linkedin.com%2F HTTP/1.1", upstream: "passenger://unix:/tmp/passenger.6335/master/helper_server.sock:", host: "domain" 

它与Nginx或Passenger无关。

在我们的生产服务器上有一个使用URL的库不能与Ruby版本一起工作。 出于某种奇怪的原因,导致Rails的灾难性失败,唯一的错误是在Nginx的错误日志中。