O que está causando esse erro no servidor nginx - 502 Gateway inválido

3

Eu tenho um site construído no Drupal 7 em um servidor nginx. Algumas vezes por semana quando eu edito qualquer conteúdo e pressiono save, ou quando eu entro no site, ou quando eu altero alguma configuração, eu recebo uma tela branca com a mensagem "502 Bad gateway". O erro nunca é mostrado para visitantes anônimos, somente quando logado e salvando as alterações. Não parece importar que tipo de mudanças eu faço. Eu posso pressionar o botão de voltar no navegador, o que me leva de volta para a tela de edição e salvar novamente, e salvar a mudança com sucesso.

O erro aconteceu novamente esta manhã às 08:09, então eu olhei no log do PHP:

2016/10/20 08:09:00 [error] 20703#20703: *3297348 recv() failed (104: Connection reset by peer) while reading response header from upstream, client: 195.198.76.66, server: www.example.com, request: "POST /node/88/edit HTTP/1.1", upstream: "fastcgi://unix:/run/php/php-fpm.sock:", host: "www.example.com", referrer: "http://www.example.com/node/88/edit"

E aqui está o log nginx ao mesmo tempo:

[20-Oct-2016 08:09:00] WARNING: [pool www0] child 10909, script '/srv/www/example/public_html/index.php' (request: "POST /index.php") execution timed out (8189.954999 sec), terminating
[20-Oct-2016 08:09:00] WARNING: [pool www0] child 10909 exited on signal 15 (SIGTERM) after 19080.476683 seconds from start
[20-Oct-2016 08:09:00] NOTICE: [pool www0] child 13002 started

Alguém pode ver o que está acontecendo aqui?

    
por TBJ 20.10.2016 / 08:58

3 respostas

3

Eu tive um problema HTTP 502 em uma configuração com nginx & php-fpm. Parece que muitos tempos limite & os limites devem ser modificados de acordo com o tempo de transferência de dados. O que estava acontecendo neste caso é que o tempo de espera do keepalive era muito curto.

Aqui estão algumas configurações que podem ajudar a resolver 502 problemas:

  • No nginx.conf: keepalive_timeout
  • No arquivo de configuração do site (que está na pasta sites-available ):
    • send_timeout
    • fastcgi_connect_timeout
    • fastcgi_send_timeout
    • fastcgi_read_timeout
  • em php.ini :
    • max_execution_time
    • max_input_time

A origem real do problema pode ser qualquer uma dessas configurações.

    
por 16.02.2017 / 22:54
1

Vale a pena verificar seus registros do Drupal para obter mais informações. Parece que você tem um módulo que está acionando um script que está demorando muito para ser concluído. Dado que isso acontece quando você está logado como administrador, pode ser que o cron demore para ser concluído.

Tente ativar manualmente o cron para ver se o erro ocorre e, em seguida, verifique os logs do drupal / nginx.

Você pode alterar o valor de max_execution_time na sua configuração do php.ini para php-fpm, embora isso provavelmente apenas cubra o problema e funcione como uma correção rápida. É melhor você encontrar o problema que está acontecendo no Drupal e tentar resolver isso.

    
por 20.10.2016 / 09:27
1

Sempre que eu encontro 502 com nginx - 90% do tempo tem algo a ver com php-fpm

Tente reproduzir o problema - rastreie os logs do php-fpm e veja se você precisa ajustar alguma coisa.

    
por 21.10.2016 / 13:52

Tags