動作しない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"
NginxやPassengerとは何の関係もありません。
URLを取得して使用するライブラリが、本番サーバーのRubyバージョンで機能していませんでした。奇妙な理由で、Rails to壊滅的に失敗したため、エラーはNginxのエラーログにのみ記録されていました。