vis*_*071 9 ssl https reverse-proxy load-balancing haproxy
情况如下:
我有许多Web服务器,比如10.我需要使用(软件)负载均衡器,它可以使用反向代理服务器实现,如HAProxy或Varnish.现在,我们所服务的所有流量都是通过https而不是http,所以Varnish是不可能的.
现在,我想将用户的请求分成几个类别,这些类别取决于请求的一个输入(POST)参数.根据该参数,我需要在服务器之间划分请求,基于此,(即使所有其他输入(POST)参数相同),不同的服务器将以不同的方式提供服务.
所以,我需要定义一个自定义负载平衡算法,这样,对于该参数的特定值,我将负载除以特定的3(比方说),对于某些其他值,将请求分为特定的2和其他值( s),剩下的5.
由于我不能使用清漆,因为它不能用于终止ssl(定义自定义算法在VCL中很容易),我正在考虑使用HA-Proxy.
所以,这是一个问题:
任何人都可以帮助我如何使用HA-Proxy定义自定义负载平衡功能?
我研究了很多,但我找不到任何这样的文件.因此,如果HA-Proxy不可能,您是否可以将我转介给其他一些反向代理服务,它也可以用作负载均衡器,以满足上述两个标准?(ssl终止和定义自定义负载平衡的能力).
编辑:
这个问题是我之前提出的一个问题.用于https的清漆
我不确定您的目标是什么,但我建议根本不要基于 HTTP 请求正文进行自定义路由。这会表现得很差,并且可能超过您想要实现的任何好处。
任何必须在负载均衡器上解析超出典型 HTTP 标头的值的内容都会减慢速度。如果可以避免的话,Cookie 本身通常不是一个好主意。
如果您可以控制路径/路由值,这可能比解析每个 POST 以获得某些值更好。
你也许可以通过 NGINX 使用 lua 脚本实现你想要的(Kong 平台基于它们),但我不能说这对你来说有多难......
https://github.com/openresty/lua-nginx-module#readme
这里有一篇文章,其中有一个根据lua输入设置不同上游的具体示例。
http://soseoff.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
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1261 次 |
| 最近记录: |