Por que o Apache está servindo arquivos antigos do NFS apesar de uma configuração aparentemente correta?

2

Eu tenho duas máquinas CentOS (virtualizadas) com um compartilhamento NFS montado com o seguinte em /etc/fstab :

<ipaddr>:/mnt/nfsshare   /mnt/nfsshare              nfs rsize=1024,wsize=1024,timeo=14,intr,cto,relatime 0 0

Eu tenho EnableMMAP Off e EnableSendfile Off em cada configuração do Apache. Outro servidor conectado ao NFS ocasionalmente copiará um arquivo CSS com uma versão atualizada (por exemplo, quando alguém aplicar alterações de teste). A partir do shell, essa atualização parece passar (por exemplo, data e hora atualizada e cat mostra os dados corretos).

No entanto, carregar o arquivo do navegador ou de outras ferramentas mostra a versão desatualizada. Ocasionalmente, vejo respostas diferentes mesmo (os dois servidores Apache têm balanceamento de carga). Depois de um tempo a mudança parecerá passar e o Apache retornará o conteúdo correto do arquivo, mas normalmente leva um minuto ou dois.

    
por scott 09.01.2012 / 21:51

1 resposta

2

Você pode tentar substituir 'cot' por 'noac' e desabilitar completamente o cache, mas se a sua instância de produção for o único lugar em que aparece, você poderá obter algumas penalidades de desempenho. Outra opção é definir acregmax = 10, que manterá os atributos armazenados em cache por não mais de 10 segundos - por padrão, todos os atributos são armazenados em cache por 60s e enquanto 'cto' diz que os atributos devem ser verificados em open () e close () processos individuais do apache ainda podem estar pendurados em identificadores de arquivo ou algo assim.

    
por 09.01.2012 / 22:09