Configurando o lighttpd para várias conexões http Keep-Alive simultâneas leves

3

Estou usando o lighttpd como um proxy de front-end para meu servidor de aplicativos baseado em HTTP personalizado. Eu preciso configurar o lighttpd para um grande número (digamos que cerca de 5000) conexões http simultâneas que têm um tempo limite grande e a configuração KeepAlive. Cada conexão ficará praticamente inativa. Imagine um servidor de bate-papo baseado em HTTP.

Meu servidor HTTP está usando a interação http-push Comet-like (veja link ). Especificamente, o cliente AJAX envia uma solicitação GET para a qual o servidor não responde imediatamente. Em vez disso, o servidor aguarda com a conexão HTTP aberta até precisar enviar uma mensagem ao cliente com novo estado e, em seguida, envia a resposta HTTP à solicitação GET. O cliente processa a resposta e continua a enviar outra solicitação GET, que mais uma vez, o servidor não responderá imediatamente.

No entanto, para o bem da questão, a natureza exata das solicitações não é necessária. O que é necessário é essencialmente uma configuração lighttpd que permite que um grande número de conexões de proxy HTTP simultâneas de baixa largura de banda seja aberto de uma só vez.

Como configuro o lighttpd 1.4.19. Estou correndo no Ubuntu 8.04. O lighttpd está fazendo proxy de solicitações para o meu servidor de aplicativos, bem como para o meu backend do django.

  • Eu simplesmente configuro server.max-keep-alive-requests = 5000 e ligue para ele um dia?

  • Se server.max-fds = 5000 ou algum número maior?

  • Quais são as considerações sobre memória?

  • Talvez eu deva endurecer meu servidor de aplicativos para que possa ser usado sem o proxy lighttpd (eu não sou tão confiante na minha programação tendo isso estar diretamente voltado para o mundo sem um proxy confiável)?

Afirma-se que o lighttpd pode manipular 10.000 conexões simultâneas. Como faço para configurá-lo para fazer metade desse número, a maioria dos quais são principalmente ociosos?

    
por Krystian Cybulski 11.07.2009 / 03:32

2 respostas

1

Lembre-se de que cada conexão proxy usa (no mínimo) dois FDs, um para o cliente e um para o servidor que está sendo intermediado por proxy. Considere também ~ 5-50 FD's para overhead.

Quanto ao resto da sua pergunta, eu diria que você precisa testar seu aplicativo em seu ambiente para encontrar as melhores configurações para você.

    
por 11.07.2009 / 10:51
1

Você precisará do Lighttpd-1.5.x (do SVN basicamente) para fazer isso corretamente, pois o proxy no 1.4.x não multiplexará o I / O Lighttpd < - > bit de comunicação de backend em 1.4.x.

Tanto quanto sei, descobri que o Lighttpd-1.5.x é o único proxy reverso capaz de fazer isso.

Você deseja usar mod_proxy_core e mod_proxy_backend_http e usar os proxy-core.max-keep-alive-requests e proxy-core.max-pool-size (observe como eles são prefixados com "proxy-core" em vez de "servidor"): link

Eu testei isso com 20.000 conexões keep-alive concorrentes (Lighttpd < - > backend) e funciona bem.

    
por 12.09.2009 / 23:22