Apache e cais

2

Eu tenho um VPS em wiredtree onde gostaria de executar um aplicativo scala / lift com jeety em um servidor que está executando uma pilha LAMP. Eu quero usar atores cometidos, então eu vou usar o "hack longo do http" e não sei se isso seria importante.

Então, quais opções eu tenho? Como posso conseguir isso? Eu li que há uma maneira de fazer isso com o mod_rewrite e com o mod_proxy, mas não tenho idéia!

    
por DFectuoso 20.06.2009 / 23:03

1 resposta

3

Todas as soluções comet dependem de manter a conexão entre o servidor web aberta o maior tempo possível, seja pelo cliente fazendo uma solicitação POST e atrasando o envio dos dados, ou o servidor enviando uma resposta GET , atrasando novamente os dados.

Ambos têm problemas semelhantes para a origem, ou seja, consumir um soquete e memória por conexão e possivelmente um thread, a menos que você esteja usando algo como continuações do Jetty.

Ao colocar um proxy reverso como o Apache na frente do Jetty, como o apache, cada conexão aberta entre o Jetty e o cliente também consumirá um trabalhador. Dependendo do modelo de trabalho do apache escolhido (por exemplo, mod_prefork ou mod_worker_mpm ), haverá limitações no número máximo de conexões que seu servidor apache pode suportar. Isso é em torno de algumas centenas por mod_prefork e é geralmente limitado pela quantidade de memória física consumida por cada processo de trabalho, para alguns milhares com mod_worker_mpm . Se você está misturando mod_worker_mpm com php você deve pesquisar as opções com as quais sua versão do php foi compilada, pois há incompatibilidades conhecidas com php e mod_worker_mpm .

Você também precisará estar ciente dos tempos limite no Apache e no Jetty. As conexões de estilo Comet simulam uma solicitação POST lenta, portanto, você precisará ajustar o Apache para torná-lo mais tolerante, assim como o tamanho do corpo da solicitação. Solicitações de GET style também estão sujeitas a tempo limite se nada for transmitido do servidor de origem. Você terá que aplicar esses tempos limite em ambos os lados da conexão de proxy reverso, do cliente para o Apache e do Apache para o Jetty.

Se eu estivesse implantando uma solução como essa, colocaria o serviço do Comet baseado em Jetty em um domínio diferente, usando um balanceador de carga para fazer proxy de vários back-ends do Jetty para capacidade e confiabilidade adicionais ou usaria outro proxy reverso, digamos HAProxy, para agir no lugar do Apaches, e direcionar solicitações para os vários backends (Apache, Jetty), com base na URL.

    
por 21.06.2009 / 05:27