Você parece ter alguns equívocos que eu sinto que precisam ser abordados.
Primeiro de tudo, o mod_php é apenas marginalmente mais rápido, todos os meus testes mostraram que a diferença é tão minúscula que não vale a pena. Também duvido que o aspecto de segurança seja relevante para você, já que parece estar olhando para um O servidor dedicado e o mod_php realmente só têm uma vantagem em um ambiente compartilhado - na verdade, em um ambiente dedicado, o php-fpm terá a vantagem como PHP e seu servidor da web agora é executado como processos diferentes, e isso não inclui as incríveis opções de registro em php-fpm, como log lento.Se o mundo fosse preto e branco, eu diria que vá com uma configuração nginx pura e compile o php com o php-fpm. Mais realisticamente, se você já tem o Apache funcionando, então faça do nginx um proxy reverso para o apache e você pode economizar algumas horas de tempo de configuração e a diferença no desempenho será pequena.
Mas vamos supor que o mundo é preto e branco por um segundo, porque isso cria configurações muito mais impressionantes. Você faz nginx + php-fpm para o seu servidor web. Para resolver os uploads, você usa o módulo de upload e o módulo de progresso de upload para o nginx. Isso significa que o seu servidor web aceita o upload e passa o caminho do arquivo para o PHP quando estiver pronto, para que o arquivo não precise ser transmitido entre o nginx e o PHP via protocolo fastcgi, sweet. (Eu tenho isso em uma configuração ao vivo e está funcionando muito bem, btw!)
Para o usuário fazer o download você usa o recurso x-send-file-like chamado x-accel-redirect, essencialmente você faz sua autenticação em PHP e configura um cabeçalho que o nginx pega e inicia a transferência desse arquivo. O PHP encerra a execução e o seu servidor web está lidando com a transferência, doce! (Novamente, eu tenho isso em uma configuração ao vivo e está funcionando muito bem)
Para distribuir arquivos através de servidores ou outras operações de longa duração, percebemos que o PHP não é mais adequado para isso, então instalamos o gearman, que é um servidor de trabalho que pode distribuir tarefas entre trabalhadores em servidores diferentes. escrito em qualquer idioma. Portanto, você pode criar um worker de distribuição e gerar 5 deles usando um total de 200 KB de memória em vez dos 100 MB que o PHP usaria. Doce. (Eu também tenho isso ao vivo, então é tudo realmente possível)
Caso você ainda não tenha percebido, acho que muitos de seus problemas não estão relacionados ao seu servidor, você só pensa assim porque o Apache obriga a ser relacionado ao seu servidor web devido a é estrutura, muitas vezes existem ferramentas muito melhores para o trabalho do que PHP e PHP é uma linguagem que sabe disso e fornece excelentes opções para descarregar o trabalho sem sair do PHP.
Eu recomendo o nginx, mas eu também acho que você deve procurar outras opções para seus outros problemas, se você tem um problema de escalonamento ou desempenho, sinta-se à vontade para me escrever. Eu não sei se você pode enviar mensagens por aqui, mas caso contrário, me escreva em [email protected], já que eu não persigo a falha do servidor por nada que não esteja marcado com nginx. :)