O armazenamento em cache raramente é uma solução de "descarte", mas, se implementado corretamente, pode resultar em um aumento significativo de velocidade para um site.
O primeiro item que você menciona 'muitas imagens CSS' - não é um problema de servidor em si. Para buscá-los, o navegador deve fazer uma solicitação para cada imagem, cada uma com sua própria sobrecarga. Combine as imagens em um sprite de CSS para que você possa minimizar o número de solicitações e maximizar a compactação que o formato de imagem escolhido aplica. Uma ideia semelhante aplica-se aos ficheiros CSS e JS - combine e reduza ao máximo possível. Para recomendações específicas de sites, experimente o Pagespeed do Google ou o YSlow do Yahoo.
No lado do servidor, existem vários caches para PHP que armazenam os formulários intermediários dos caches traduzidos script - opcode. O mais comumente usado é o APC, mas o xcache e o eaccelerator também são usados com frequência (use apenas um deles).
Do lado do PHP, o cache normalmente envolve a geração de uma cópia estática do seu conteúdo. Isto pode ser conseguido usando buffer de saída (o ob_ * funções (por exemplo, ob_start ()). Você começa a armazenar em buffer antes de enviar qualquer conteúdo, encerrar seu buffer depois que sua página foi totalmente construída e salvar o conteúdo resultante em um arquivo. a existência de tal arquivo antes de tentar o script PHP (ou seja, se o cache existir, sirva-o, caso contrário carregue o script).
Além disso, você pode adicionar uma camada adicional à sua pilha da web - o verniz é uma escolha popular. É um servidor proxy e de cache reverso. Essencialmente, as solicitações para o seu servidor de back-end são recebidas pelo Varnish e, se já tiver uma cópia da página, ela será veiculada diretamente - ignorando o back-end. Se não tiver uma cópia da solicitação, ela será passada para o back-end. O verniz pode ser configurado para armazenar seu cache diretamente na memória ou pode usar armazenamento em disco e é bastante eficiente no que faz.
Como acontece com qualquer abordagem de armazenamento em cache, você enfrenta o problema potencial de vazamento de informações confidenciais - se você armazenar em cache uma página que só deve estar visível para usuários logados e acabar veiculando para um usuário não autenticado, você tem um problema. Como tal, um servidor como o Varnish tende a não armazenar em cache nenhum pedido contendo cookies - algo que é importante considerar ao tentar realmente alcançar uma alta taxa de acertos.
A outra consideração possível é usar uma rede de distribuição de conteúdo - um serviço que tenha locais de borda de rede mais próximos aos usuários, para que várias solicitações possam ser atendidas mais rapidamente - geralmente, isso é mais importante para arquivos grandes. você está servindo muitos arquivos pequenos (por exemplo, imagens), você provavelmente pode melhorar o design do seu site.