How to enable HTTP Keep Alive

Asked

Viewed 220 times

0

I am developing an application that needs to carry out many back-end requests. I would like to try the model of keeping the connection open: Keep-Alive.

But in practice I have no idea where to start: apache? php service?

I’ve seen that Xios sends http header, but not exactly if the connection is kept open...

  • You’ve already got the backend done ?

  • Yes, backend already implemented, I want to see if I can optimize with Keep Alive now.

1 answer

0

PHP is not meant to keep the connection active, even if it is possible, I think it would be easier with Nodejs. But you can set up Apache like this:

httpd.conf

KeepAlive: on/off         # :)
MaxKeepAliveRequests: 50  #acho que aqui é mais que suficiente
KeepAliveTimeout: 5       #vá testando, mas creio que esse valor seja ideal
MaxClients: 75            #75 por 1GB, se tem 2GB de RAM, 150
ServerLimit: 75           #Mesmo número do MaxClients
MaxConnectionsPerChild: 2 #Importante, só não deixa o valor 0 "infinito", que é padrão
MaxRequestsPerChild: 2    #mesma função do MaxConnectionsPerChild, veja descrição

Description

KeepAlive: Liga ou desliga.

MaxKeepAliveRequests: Número máximo de requisições que uma conexão poderá efetuar.

KeepAliveTimeout: Quanto tempo a conexão vai esperar por uma nova requisição de um cliente já conectado.

MaxClients: Quantidade de processos filhos do apache

ServerLimit: Use este ao invés de MaxClients se estiver usando prefork MPM, caso não, use ServerLimit e MaxClients no mesmo valor.

MaxConnectionsPerChild: Quantidade máxima de de conexões por uma processo filho, o padrão é 0 "ilimitado", tente colocar um valor que não seja zero, mas que não seja muito alto, isto é algo que você terá que fazer os cálculos para não acabar com a memória

MaxRequestsPerChild: é o mesmo caso do MaxConnectionsPerChild, só use esta opção se estiver usando Apache < 2.3.9. Apache >= 2.3.9 use o MaxConnectionsPerChild

Take care of most of the options mentioned here, can eat server memory if not configured correctly, some you will have to do calculations regarding the available memory and CPU.

If you are using Nginx, look in the documentation and try to follow the same logic


Sources:

https://abdussamad.com/archives/535-Apache-MaxClients.html https://abdussamad.com/archives/169-Apache-optimization:-Keepalive-On-or-Off.html https://serverfault.com/a/28311 https://serverfault.com/a/713098 http://httpd.apache.org/docs/2.4/mod/mpm_common.html#maxconnectionsperchild

Browser other questions tagged

You are not signed in. Login or sign up in order to post.