Release 1.2.2: fix load-balancing crash (wrong lua-resty-balancer module)
Every request to a host with additional load-balancing targets 500'd: targetinfo.lua required 'resty.balancer.round_robin', which does not exist in the lua-resty-balancer rock actually installed by the Dockerfile/install.sh. That rock provides resty.roundrobin instead, with a different constructor (roundrobin:new(nodes), not :new() + :reinit(nodes)). Verified end-to-end in a rebuilt image: requests to a load-balanced host now return 200 and alternate across both backend targets, with no Lua errors in the OpenResty log. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@@ -62,7 +62,7 @@ function M.get(ngx, domain, targetInfo)
|
||||
|
||||
local json = require "cjson"
|
||||
local redis = require "resty.redis"
|
||||
local round_robin = require "resty.balancer.round_robin"
|
||||
local roundrobin = require "resty.roundrobin"
|
||||
|
||||
if not domain then
|
||||
return nil, 499
|
||||
@@ -114,12 +114,11 @@ function M.get(ngx, domain, targetInfo)
|
||||
local cache_key = domain .. "_" .. (res["updated_on"] or "0")
|
||||
|
||||
if not M.host_balancers[domain] or M.host_balancers[domain].key ~= cache_key then
|
||||
local b = round_robin:new()
|
||||
local nodes = {}
|
||||
for _, t in ipairs(target_list) do
|
||||
nodes[t] = 1
|
||||
end
|
||||
b:reinit(nodes)
|
||||
local b = roundrobin:new(nodes)
|
||||
M.host_balancers[domain] = { b = b, key = cache_key }
|
||||
end
|
||||
|
||||
|
||||
Reference in New Issue
Block a user