现在想在upstream里面解析tcp消息获取到业务参数来进行流量分发 ,但不知道可不可以实现
stream {
server {
listen 9000 so_keepalive=30m::10;
content_by_lua_block{
local sock = ngx.req.socket(true)
local reader = sock:receiveuntil("\r\n")
local data, err, partial = reader()
if not data then
ngx.print("failed to read the data stream: ", err)
end
ngx.print("read the data stream: ", data)
}
}
}
配置nginx转发tcp请求到你的后台服务器,然后后台服务器得到tcp数据包,再解析获取对应的数据
stream{
upstream mysql{
server 192.168.1.106:3306 weight=1;
server 192.168.1.108:3306 weight=1;
}
server{
listen 3307;
proxy_pass mysql;
}
}
nginx这么解析我不知道,我知道使用openresty + lua 来做nginx里面的一些处理,也可以获取tcp过来的消息处理
openresty:https://github.com/openresty/openresty
lua:https://github.com/openresty/lua-nginx-module
只能帮到这里了,溜了。。。