我正在使用 nginx 在一组灰色日志服务器前对记录器 UDP 流量进行负载平衡。大型日志消息被分成块,然后使用 8 字节的消息 id 从 2 字节标头后重新拼凑在一起,如 GELF 文档中所述:http://docs.graylog.org/en/2.3/pages/gelf。 html
我想根据这 8 个字节(或仅有效负载的前 10 个字节)对消息进行负载平衡,但是我不确定如何提取这些字节,以便可以将它们用作散列参数中的变量:
upstream graylog_nodes {
hash $first_ten_bytes;
server 192.168.136.201:1812;
server 192.168.136.202:1812;
}
这对nginx可行吗?可以通过定义自定义变量并用于路由流量吗?
http://nginx.org/en/docs/stream/ngx_stream_upstream_module.html