web-dev-qa-db-ja.com

Nginx + Passenger:GET変数でurlencodedURLを渡すときにNginxから502Bad Gateway

動作しない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でのみ発生し、ApacheでPassengerを使用すると正常に機能しますが、本番マシンでは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"
1
jimeh

NginxやPassengerとは何の関係もありません。

URLを取得して使用するライブラリが、本番サーバーのRubyバージョンで機能していませんでした。奇妙な理由で、Rails to壊滅的に失敗したため、エラーはNginxのエラーログにのみ記録されていました。

1
jimeh