Nginx + Passenger: 502 Gateway inválido do Nginx ao passar URLs urlencoded em GET vars

1

Veja um exemplo dos URLs que não funcionam:

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

No entanto, o seguinte URL funciona:

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

Além disso, isso só acontece com o Nginx, usando o Passenger com o Apache e funciona bem, mas usamos o Nginx em nossas máquinas de produção.

Aqui está a entrada no log de erros do 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"
    
por jimeh 01.12.2009 / 10:41

1 resposta

1

Não tem nada a ver com Nginx ou Passenger.

Havia uma biblioteca que pega e usa um URL que não estava funcionando com a versão do Ruby em nosso servidor de produção. Por alguma razão estranha, isso estava fazendo com que o Rails falhasse tão catastroficamente que os únicos erros estavam no log de erros do Nginx.

    
por 01.12.2009 / 10:52