Defina a prioridade para solicitações específicas no servidor web Apache

3

temos um site com integração CometChat para nossos usuários; já que nosso servidor apache recebe muitas solicitações para o serviço de bate-papo, gostaríamos de definir uma prioridade diferente (menor) para essas solicitações, enquanto atendemos com prioridade mais alta as outras.

Tanto quanto sabemos, uma maneira de fazer isso pode ser usando mod_qos, que nos permite limitar o número de solicitações em um período de tempo (por exemplo, reqs por segundo) para um caminho específico. Isso não é exatamente o que gostaríamos de fazer, mas poderia ser uma solução parcial.

Minha pergunta é: existe uma solução melhor para priorizar solicitações? Se você sugerir usar mod_qos , qual seria uma boa configuração para os mod_qos conseguirem o que eu pedi?

Obrigado

    
por lorenzo.marcon 19.07.2012 / 17:13

2 respostas

2

Não é possível priorizar solicitações dentro do servidor da web apache diretamente .

Dito isso, como o apache contém uma solução completa de proxy e balanceamento de carga pronta para uso, há muitos ajustes a serem feitos com isso.

Provavelmente você deve procurar no proxy para separar os back-ends (que podem ser executados no mesmo servidor) usando ProxyPass

Isso separaria as solicitações para o serviço de bate-papo de outras solicitações, e você poderá decidir em termos de proxy para proxy a quantidade de recursos que cada back-end tem disponível para responder a solicitações.

Uma solução completa estaria fora do escopo deste formato, mas a documentação do apache para o mod_proxy irá ajudá-lo; especialmente, olhe para as opções ProxyPass que permitem definir prioridades e solicitar limites por back-end.

    
por 19.07.2012 / 17:25
1

Se você tem serviços distintos que está oferecendo e está limitado à CPU, as opções são

1) Expanda (máquina maior, 8 núcleos de CPU ou mais!)

2) Escalar - Quando atingir o limite de escalonamento de uma máquina, dimensione para fora, Várias máquinas com uma solução de balanceamento de carga - Fornece tolerância a falhas como um efeito colateral positivo livre.

Coisas para pensar:

Separação de serviços. Execute seu bate-papo e serviços da Web em diferentes máquinas ou clusters

Otimize sua plataforma, use uma solução eficiente. Pense em solicitações de cache / proxies front-end.

Ok, trazendo seu comentário a bordo. A única outra maneira que posso pensar que poderia ser feito é

executa duas instâncias do httpd (digamos, uma em 8000 (chat) e a outra em 8001 (web))

execute um proxy reverso de alta velocidade como nginx na porta 80.

defina uma das instâncias do httpd para uma prioridade mais baixa.

Ajuste sua configuração http.

    
por 20.07.2012 / 11:35

Tags