diff --git a/plugins/webstats/lua/webstats_common.lua b/plugins/webstats/lua/webstats_common.lua index 5ebaa9fa5..d1dd62cd6 100644 --- a/plugins/webstats/lua/webstats_common.lua +++ b/plugins/webstats/lua/webstats_common.lua @@ -121,6 +121,10 @@ end function _M.split(self, str, reps) local arr = {} + -- 修复反向代理代过来的数据 + if "table" == type(data) then + return str + end string.gsub(str,'[^'..reps..']+',function(w) table.insert(arr,w) end) return arr end diff --git a/plugins/webstats/lua/webstats_log.lua b/plugins/webstats/lua/webstats_log.lua index d1f1bfdce..148f3b309 100644 --- a/plugins/webstats/lua/webstats_log.lua +++ b/plugins/webstats/lua/webstats_log.lua @@ -325,6 +325,12 @@ log_by_lua_block { end local remote_addr = ngx.var.remote_addr + + -- 修复反向代理代过来的数据 + if "table" == type(ip_list) then + ip_list = json.encode(ip_list) + end + if not string.find(ip_list, remote_addr) then if remote_addr then ip_list = ip_list .. "," .. remote_addr