ssl - servicio - para que sirve un balanceador de internet
Definir algoritmo de equilibrio de carga personalizado (1)
No estoy seguro de cuál es tu objetivo, pero sugiero que NO hagas un enrutamiento personalizado basado en el cuerpo de solicitud HTTP. Esto funcionará muy mal, y probablemente supere cualquier beneficio que esté tratando de lograr.
Todo lo que tenga que analizar los valores más allá de los encabezados HTTP típicos en su equilibrador de carga ralentizará las cosas. Las cookies por sí mismas son generalmente una mala idea si puedes evitarlo.
Si puede controlar los valores de ruta / ruta probablemente sea una idea mucho mejor que analizar cada POST para ciertos valores.
Probablemente puedas lograr lo que quieres a través de NGINX con scripts de lua (la plataforma de Kong está basada en ellos), pero no puedo decir lo difícil que sería para ti ...
https://github.com/openresty/lua-nginx-module#readme
Aquí hay un artículo con un ejemplo específico de configuración de diferentes flujos ascendentes basados en la entrada lua.
http://sosedoff.com/2012/06/11/dynamic-nginx-upstreams-with-lua-and-redis.html
server {
...BASE CONFIG HERE...
port_in_redirect off;
location /somepath {
lua_need_request_body on;
set $upstream "default.server.hostname";
rewrite_by_lua ''
ngx.req.read_body() -- explicitly read the req body
local data = ngx.req.get_body_data()
if data then
-- use data: see
-- https://github.com/openresty/lua-nginx-module#ngxreqget_body_data
ngx.var.upstream = some_deterministic_value
end
''
...OTHER PARAMS...
proxy_pass http://$upstream
}
}
Aquí está la situación:
Tengo una serie de servidores web, por ejemplo, 10. Necesito usar un equilibrador de carga (de software) que se puede implementar usando un servidor proxy inverso, como HAProxy o Varnish. Ahora, todo el tráfico que servimos está sobre https y no sobre http, por lo que Varnish está fuera de cuestión.
Ahora, quiero dividir la solicitud de los usuarios en algunas categorías, que dependen de uno de los parámetros de entrada (POST) de la solicitud. Dependiendo de ese parámetro, necesito dividir la solicitud entre los servidores, en función de eso, (incluso si todos los demás parámetros de entrada (POST) son iguales), los servidores diferentes servirían de manera diferente.
Entonces, necesito definir un algoritmo de equilibrio de carga personalizado, de modo que, para un valor particular de ese parámetro, divida la carga en 3 específicos (por ejemplo), para algún otro valor, divida la solicitud en 2 específicos y para otro valor ( s), a 5 restantes.
Como no puedo usar barniz, ya que no se puede usar para terminar con SSL (la definición del algoritmo personalizado hubiera sido fácil en VCL), estoy pensando en usar HA-Proxy.
Así que aquí está la cuestión:
¿Alguien puede ayudarme a definir una función de equilibrio de carga personalizada utilizando HA-Proxy?
Investigué mucho y no pude encontrar ningún documento con el que podamos. Entonces, si no es posible con HA-Proxy, ¿me puede remitir a algún otro servicio de proxy inverso, que también se pueda usar como equilibrador de carga, de modo que cumpla con los dos criterios anteriores? (terminación ssl y capacidad para definir un equilibrio de carga personalizado).
EDITAR:
Esta pregunta está en sucesión con una de mis preguntas anteriores. Barniz para ser utilizado para https