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.