Lighttpd ou nginx são provavelmente o caminho certo para isso. Pessoalmente, eu escolheria nginx.
Não se esqueça de otimizar sua aplicação também. Resultados da consulta de cache com o memcached.
É possível otimizar ainda mais ao veicular imagens, js e css de um cookie separado domínio livre . Seguir as dicas desse guia também o colocará no caminho certo.
Você pode fazer frente ao (s) seu (s) servidor (es) da Web com Verniz para armazenar em cache dados de páginas estáticas. Se você realmente quiser sair por completo, sirva suas imagens, js e css de um CDN.
Dependendo de quanto tráfego você recebe (ou espera obter); talvez seja necessário considerar vários webnodes de front-end, e nesse caso, o verniz pode funcionar como um balanceador de carga muito bom.
Eu já disse isso antes e vou dizer de novo. Se você espera picos de tráfego e demanda tempo de atividade e não interrupções, talvez possa consultar um Amazon EC2 com a oferta AutoScaling . É provável que seja mais eficiente do que criar sua própria solução, especialmente se você não estiver esperando que o tráfego persista durante todo o ano.
Além disso, você não disse se está usando um VPS ou uma máquina física. Descobri que os VPSs são uma droga para sites de alto tráfego, porque geralmente há problemas de contenção de IO, causando altos tempos de espera de IO. Para alta disponibilidade, você realmente não pode superar hardware dedicado, NICs duplas, infraestrutura de rede redundante, etc.
Tudo depende do seu orçamento, suponho.