PHP servindo páginas em branco para 1% dos usuários

4

Recentemente, migramos nosso site para um cluster do Apache com carga balanceada atrás do verniz. Desde então, um subconjunto muito pequeno de usuários está relatando que eles não podem visualizar nenhuma página. Eu reduzi a questão um pouco. Esse problema não estava presente antes da mudança, a infraestrutura antiga era uma única caixa grande.

Estamos na Rackspace Cloud executando 8 instâncias apache2 atrás do verniz 3.0, todos com carga balanceada usando balanceadores de carga Rackspace Cloud (Zeus) e 2 instâncias mysql para um total de 10 servidores, todos linux.

O usuário pode visualizar um arquivo html estático. O usuário pode visualizar um ativo estático, como uma imagem. O usuário não pode visualizar qualquer arquivo php, mesmo um simples que inclui apenas phpinfo (); O usuário não pode visualizar nenhum arquivo php quando o balanceador de carga é retirado da imagem.

Os registros do apache não mostram nada de nota, a não ser nos registros de acesso. O relatório de erros do PHP está configurado para registrar e não exibir, embora eu o tenha configurado para ser exibido por um curto período e o usuário ainda receba uma página em branco sem um erro. Os logs de erros do Apache / Varnish / PHP mostram nada de nota.

Os servidores são:

  • Ubuntu Maverick 10.10
  • Apache 2.2.16-1ubuntu3.1 (mpm-worker)
  • PHP 5.3.3-1ubuntu9.5 (usado no fcgi)
  • PHP APC está em uso
  • O aplicativo está no Code Igniter
  • Varnish foi 2.1.3, agora 3.0.0 - o problema estava presente em ambas as versões
  • O MySQL é o backend do banco de dados em uma configuração master-master, mas devido a problemas de acesso do cliente com um arquivo contendo apenas phpinfo (); Tenho certeza de que o banco de dados não é o problema.

Instantâneos de algumas configurações:

  • PHP FCGI - link
  • Apache Virtual Host - link
  • Varnish VCL - link
  • Lista de todos os módulos do apache em execução - link

Eu posso fornecer qualquer / todos os logs necessários para depurar ainda mais, mas não há nada de nota neles para os usuários com este problema, acesso típico do apache, sem erros do php.

Tenho a sensação de que, de alguma forma, isso pode estar relacionado ao armazenamento de sessão do php, embora eu não possa confirmar isso.

Qualquer percepção do problema é muito apreciada. Apenas para reiterar uma última vez, esse problema afeta apenas um pequeno número de usuários. 5-10 entraram em contato conosco sobre o assunto, mas presumo que o número seja maior do que o de pessoas que não se deram ao trabalho de relatar o problema. Esses 5 a 10 usuários que nos contataram abrangem vários continentes / países / isps.

    
por WerkkreW 27.07.2011 / 20:42

2 respostas

3

Isso se tornou um problema em que o PHP não pôde registrar no arquivo de log especificado devido a um problema de permissão, e a exibição de erros foi desativada.

Como tal, o erro do PHP não foi exibido, ou pode ser registrado - mas a causa raiz das páginas em branco foi devido a um estranho erro fatal do PHP.

    
por 25.10.2011 / 20:31
5

Talvez isso ajude você: Você tem o KeepAlive para começar?

Tivemos o mesmo problema no verniz com o mpm-itk, o problema era que, quando o mpm-itk era acessado com um vhost diferente, a sessão keep-alive era, ele acabou de matar a conexão. Cada navegador normal tentaria se reconectar, mas o verniz não fica em uma configuração padrão. Com a remoção do KeepAlive, este comportamento não poderia acontecer, por isso resolveu este problema.

Eu sei que você não está usando o mpm-itk, mas talvez valha a pena tentar.

Outra ideia: Você pode acessar o site contornando o verniz e tentar forçar a página em branco? Então você talvez descubra se o verniz é o problema.

    
por 27.07.2011 / 22:28