O servidor retorna o código de erro http 504 para um script específico

2

Eu tenho 3 servidores que configuram balanceamento de carga idêntico de um único site com o cluster do apache, mod_proxy_fcgi, php5-fpm e mysql / mariaDB em execução no servidor do ubuntu 14.04. Tudo parece funcionar bem na maior parte, exceto uma página. A página está tendo problemas com uploads e processa um arquivo csv grande (entre linhas de 7K e 20K) e insere os dados no banco de dados. Esta página funcionou bem quando o site estava sendo executado em um único servidor, mas o cluster galera de tempo adicional leva para sincronizar os outros dois servidores seams para ser a causa raiz do problema, pois é uma atualização síncrona que um bloqueio é obtido e mantido até que todos os 3 servidores são atualizados. Isso é imperceptível em qualquer outra página, mas neste script um erro 504 é retornado e o log de erros do apache contém o seguinte erro.

[proxy_fcgi:error] [pid 24235] [client 99.99.99.99:44197] AH01068: Got bogus version 1,referer: http://example.com/page.php
[proxy_fcgi:error] [pid 24235] (22)Invalid argument: [client 99.99.99.99:44197] AH01075: Error dispatching request to :, referer: http://example.com/page.php

o endereço IP 99.99.99.99 é o endereço IP real do servidor e não o cliente, então parece que o php-fpm não está respondendo ao proxy_fcgi a tempo (porque ele está esperando no mysql) e um timeout é retornado. Eu tentei ajustar o tempo limite na configuração do meu site apache, bem como tempos limite para php-fpm sem sorte.

minha configuração do apache é a seguinte

<Proxy fcgi://127.0.0.1:9000>
    ProxySet timeout=1800
</Proxy>
ProxyPassMatch ^/(.*\.php(/.*)?)$ fcgi://127.0.0.1:9000/var/www/$1

também tentou

ProxyPassMatch ^/(.*\.php(/.*)?)$ fcgi://127.0.0.1:9000/var/www/$1 connectiontimeout=300 timeout=300

Eu não quero processar o upload em segundo plano porque como eu estou processando a página se forem encontrados erros no arquivo csv eu estou usando o mysql row pk para permitir que o usuário edite informações e corrija os problemas. Meus usuários estão mais confortáveis aguardando por esta página, então eles estão voltando mais tarde para verificar seu progresso.

    
por TNT 02.10.2014 / 19:14

1 resposta

1

Eu tive um problema semelhante ao usar o Evento MPM em "Apache 2.4.10-1 + deb.sury.org ~ trusty + 1".
Mudar (de volta, assim como no Apache 2.2) para o MPM Worker resolveu:

a2dismod mpm_event && a2enmod mpm_worker && service apache restart

Experimente (quando você está usando o MPM Event na sua configuração, é claro).

    
por 14.11.2014 / 15:27