做了个定时任务,定时请求后端数据缓存到nginx,前端直接读取缓存数据。 特地做了一个 lua 获取upstream 的功能
获取所有主机
local upstream = require "ngx.upstream"
function getUpstreamIps()
local us = upstream.get_primary_peers('front')
local ips = {}
for _, u in ipairs(us) do
table.insert(ips, u.name)
end
return ips
end
随机获取一个主机,基于上面的,获取个数据数,返回改索引的主机
function getFrontIp()
local ips = getUpstreamIps()
local ramdom = math.random(1, #ips);
return ips[ramdom]
end
喜欢的拿去