O HTTP 1.0 não suporta keep-alive (conexões persistentes do AKA) e não há nenhum sistema para pedir que eles usem o HTTP 1.1, você poderia retornar 400x, mas eles ainda teriam criado uma conexão e não há uma maneira padrão para dizer-lhes para tentar HTTP 1.1 em seu lugar. Mesmo que todos os seus clientes trabalhem, eles precisam do HTTP1.1. Não há nada que você possa fazer no serviço para impedir que eles enviem o "fechamento" no cabeçalho de manutenção ou desconectem a conexão e ainda façam uma única conexão por solicitação.
Existem algumas opções de kernel Linux (especificamente DEFER_ACCEPT
e TIME_WAIT
) que podem ajudar a reduzir a tabela de conexão TCP, mas eu não recomendaria seguir essa rota a menos que você saiba o que está fazendo, pois é muito fácil piorar as coisas em vez de melhorar.
Mas pensando mais amplamente, acho que você está tentando resolver o problema de maneira errada. A internet está escura e cheia de terrores, Se bots aleatórios estão lhe causando problemas de limite de conexão TCP, então você está desesperado vulnerável a inundações SYN ou outros eventos e bots do tipo DDOS são apenas um sinal de que seu servidor está subescalado, sob ataque ou mal configurado. De qualquer forma, algo está errado.
Se você realmente quiser controlar que tipo de solicitações chegará ao apache, precisará de um WAF (firewall de aplicativo da web) ou do balanceador de carga na frente do apache para filtrar solicitações incorretas antes de consumirem conexões dispendiosas do apache. Em muitos casos, você também pode descarregar o trabalho intensivo da CPU na criptografia SSL / TLS.
Eu sei que isso não é uma solução rápida ou a resposta que você está procurando, mas seja qual for o problema, é muito pouco comum resolvê-lo seguindo esse caminho.