Melhorando o desempenho usando um servidor de arquivos estático adicional

3

Estou planejando um site grande que inclui muitos recursos estáticos (js, css, imagens e miniaturas) nas páginas geradas. Esse site usará TYPO3 como CMS (é uma exigência do cliente).

Acho que posso melhorar seriamente os tempos de desempenho / carregamento da página usando uma configuração de dois servidores. Um servidor onde o aplicativo principal (PHP) é executado e outro onde os arquivos estáticos ficam sendo atendidos por uma versão reduzida do apache ou algo como lighthttpd.

Incluindo e. g. js ou css arquivos do servidor de arquivos é claro que não é grande coisa. Basta usar um URL absolutohttp://static.example.com/js/main.js e acabar com isso.

Mas: esse site terá páginas com MUITAS miniaturas de e. g. imagens de produtos nele. Então, vejo dois problemas quando o aplicativo principal tenta criar uma miniatura de uma imagem:

  1. a imagem original como products/some.jpg é carregada no servidor de arquivos estático e, portanto, não no mesmo servidor que o aplicativo PHP que tenta criar a miniatura.

  2. TYPO3 grava miniaturas criadas em um diretório temporário que deve estar no mesmo servidor. Portanto, centenas de miniaturas serão gravadas e exibidas a partir desse diretório temporário que está no mesmo servidor que o aplicativo principal - > o servidor de arquivos estático é, nesse caso, basicamente inútil, todas as miniaturas serão solicitadas ao servidor do aplicativo principal.

Então, minha pergunta é: como superar essas deficiências?

É possível "ligar simbolicamente" alguns diretórios a outro servidor ?

Então, por exemplo, se o PHP tentar abrir a imagem dos produtos originais para criação de miniaturas com imagecreate("products/some.jpg") , a pasta de produtos realmente "aponta" para a pasta de produtos no servidor de imagens estáticas? Eu sei que algo como isso pode ser feito com .htaccess , mas é possível no nível do sistema de arquivos?

    
por Max 10.04.2010 / 11:05

3 respostas

6

Cache de verniz é ótimo para isso!

texto alternativo http://www.mocsystems.com/typo3temp/pics/1bd7cb81a0.png

Você pode achar esse artice interessante.

    
por 10.04.2010 / 12:05
1

Eu diria que a primeira coisa a fazer é começar com mod_expires para reduzir as solicitações de arquivos estáticos, então talvez adicione mod_deflate para diminuir a largura de banda.

Somente quando você realmente ver carga séria, iniciar o particionamento em servidores separados.

Mover solicitações estáticas para um vserver diferente no mesmo apache (provavelmente usando a mesma raiz do documento) deve ser um bom primeiro passo no particionamento.

    
por 10.04.2010 / 12:22
0

Parece que ninguém realmente respondeu à questão em si.

Ter um servidor diferente manipular solicitações de arquivos estáticos é significativamente diferente de lidar com todas as solicitações pelo mesmo proxy de armazenamento em cache.

Ter um servidor separado para arquivos estáticos permite que os clientes lidem com mais downloads em paralelo.

Também estou interessado em uma solução para fazer isso facilmente no TYPO3. Eu não precisaria do servidor estático em uma máquina separada. Então, o acesso ao sistema de arquivos não é um problema para mim.

    
por 07.10.2010 / 15:43