mirror of
https://github.com/bunkerity/bunkerized-nginx
synced 2023-12-13 21:30:18 +01:00
fix redis not contacted in subsequent phases and reflect changes on stream configs
This commit is contained in:
parent
1624c4e766
commit
5adec84d5a
|
@ -148,7 +148,6 @@ end
|
||||||
helpers.fill_ctx = function()
|
helpers.fill_ctx = function()
|
||||||
-- Return errors as table
|
-- Return errors as table
|
||||||
local errors = {}
|
local errors = {}
|
||||||
local use_redis = nil
|
|
||||||
-- Check if ctx is already filled
|
-- Check if ctx is already filled
|
||||||
if not ngx.ctx.bw then
|
if not ngx.ctx.bw then
|
||||||
-- Instantiate bw table
|
-- Instantiate bw table
|
||||||
|
@ -180,15 +179,14 @@ helpers.fill_ctx = function()
|
||||||
-- Misc info
|
-- Misc info
|
||||||
data.integration = utils.get_integration()
|
data.integration = utils.get_integration()
|
||||||
data.version = utils.get_version()
|
data.version = utils.get_version()
|
||||||
-- Common objects
|
|
||||||
use_redis, err = utils.get_variable("USE_REDIS", false)
|
|
||||||
if not use_redis then
|
|
||||||
table.insert(errors, "can't get variable from datastore : " .. err)
|
|
||||||
end
|
|
||||||
-- Fill ctx
|
-- Fill ctx
|
||||||
ngx.ctx.bw = data
|
ngx.ctx.bw = data
|
||||||
end
|
end
|
||||||
-- Always create new objects for current phases in case of cosockets
|
-- Always create new objects for current phases in case of cosockets
|
||||||
|
local use_redis, err = utils.get_variable("USE_REDIS", false)
|
||||||
|
if not use_redis then
|
||||||
|
table.insert(errors, "can't get variable from datastore : " .. err)
|
||||||
|
end
|
||||||
ngx.ctx.bw.datastore = require "bunkerweb.datastore":new()
|
ngx.ctx.bw.datastore = require "bunkerweb.datastore":new()
|
||||||
ngx.ctx.bw.clusterstore = require "bunkerweb.clusterstore":new()
|
ngx.ctx.bw.clusterstore = require "bunkerweb.clusterstore":new()
|
||||||
ngx.ctx.bw.cachestore = require "bunkerweb.cachestore":new(use_redis == "yes")
|
ngx.ctx.bw.cachestore = require "bunkerweb.cachestore":new(use_redis == "yes")
|
||||||
|
|
|
@ -66,10 +66,6 @@ server {
|
||||||
local order, err = datastore:get("plugins_order")
|
local order, err = datastore:get("plugins_order")
|
||||||
if not order then
|
if not order then
|
||||||
logger:log(ngx.ERR, "can't get plugins order from datastore : " .. err)
|
logger:log(ngx.ERR, "can't get plugins order from datastore : " .. err)
|
||||||
local ok, err = lock:unlock()
|
|
||||||
if not ok then
|
|
||||||
logger:log(ngx.ERR, "lock:unlock() failed : " .. err)
|
|
||||||
end
|
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
order = cjson.decode(order)
|
order = cjson.decode(order)
|
||||||
|
|
|
@ -7,20 +7,13 @@ init_by_lua_block {
|
||||||
local cjson = require "cjson"
|
local cjson = require "cjson"
|
||||||
|
|
||||||
-- Start init phase
|
-- Start init phase
|
||||||
local logger = clogger:new("INIT-STREAM")
|
local logger = clogger:new("INIT")
|
||||||
local datastore = cdatastore:new()
|
local datastore = cdatastore:new()
|
||||||
logger:log(ngx.NOTICE, "init-stream phase started")
|
logger:log(ngx.NOTICE, "init-stream phase started")
|
||||||
|
|
||||||
-- Purge cache
|
|
||||||
local cachestore = require "bunkerweb.cachestore":new()
|
|
||||||
local ok, err = cachestore:purge()
|
|
||||||
if not ok then
|
|
||||||
logger:log(ngx.ERR, "can't purge cachestore : " .. err)
|
|
||||||
end
|
|
||||||
|
|
||||||
-- Remove previous data from the datastore
|
-- Remove previous data from the datastore
|
||||||
logger:log(ngx.NOTICE, "deleting old keys from datastore ...")
|
logger:log(ngx.NOTICE, "deleting old keys from datastore ...")
|
||||||
local data_keys = {"^plugin_", "^variable_", "^plugins$", "^api_", "^misc_"}
|
local data_keys = {"^plugin", "^variable_", "^api_", "^misc_"}
|
||||||
for i, key in pairs(data_keys) do
|
for i, key in pairs(data_keys) do
|
||||||
local ok, err = datastore:delete_all(key)
|
local ok, err = datastore:delete_all(key)
|
||||||
if not ok then
|
if not ok then
|
||||||
|
@ -50,6 +43,13 @@ init_by_lua_block {
|
||||||
end
|
end
|
||||||
logger:log(ngx.NOTICE, "saved variables into datastore")
|
logger:log(ngx.NOTICE, "saved variables into datastore")
|
||||||
|
|
||||||
|
-- Purge cache
|
||||||
|
local cachestore = require "bunkerweb.cachestore":new(false, true)
|
||||||
|
local ok, err = cachestore:purge()
|
||||||
|
if not ok then
|
||||||
|
logger:log(ngx.ERR, "can't purge cachestore : " .. err)
|
||||||
|
end
|
||||||
|
|
||||||
-- Set API values into the datastore
|
-- Set API values into the datastore
|
||||||
logger:log(ngx.NOTICE, "saving API values into datastore ...")
|
logger:log(ngx.NOTICE, "saving API values into datastore ...")
|
||||||
local value, err = datastore:get("variable_USE_API")
|
local value, err = datastore:get("variable_USE_API")
|
||||||
|
@ -155,4 +155,3 @@ init_by_lua_block {
|
||||||
logger:log(ngx.NOTICE, "init-stream phase ended")
|
logger:log(ngx.NOTICE, "init-stream phase ended")
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -46,10 +46,6 @@ end
|
||||||
local order, err = datastore:get("plugins_order")
|
local order, err = datastore:get("plugins_order")
|
||||||
if not order then
|
if not order then
|
||||||
logger:log(ngx.ERR, "can't get plugins order from datastore : " .. err)
|
logger:log(ngx.ERR, "can't get plugins order from datastore : " .. err)
|
||||||
local ok, err = lock:unlock()
|
|
||||||
if not ok then
|
|
||||||
logger:log(ngx.ERR, "lock:unlock() failed : " .. err)
|
|
||||||
end
|
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
order = cjson.decode(order)
|
order = cjson.decode(order)
|
||||||
|
|
|
@ -27,10 +27,6 @@ logger:log(ngx.INFO, "ngx.ctx filled (ret = " .. ret .. ")")
|
||||||
local order, err = datastore:get("plugins_order")
|
local order, err = datastore:get("plugins_order")
|
||||||
if not order then
|
if not order then
|
||||||
logger:log(ngx.ERR, "can't get plugins order from datastore : " .. err)
|
logger:log(ngx.ERR, "can't get plugins order from datastore : " .. err)
|
||||||
local ok, err = lock:unlock()
|
|
||||||
if not ok then
|
|
||||||
logger:log(ngx.ERR, "lock:unlock() failed : " .. err)
|
|
||||||
end
|
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
order = cjson.decode(order)
|
order = cjson.decode(order)
|
||||||
|
|
|
@ -27,10 +27,6 @@ logger:log(ngx.INFO, "ngx.ctx filled (ret = " .. ret .. ")")
|
||||||
local order, err = datastore:get("plugins_order")
|
local order, err = datastore:get("plugins_order")
|
||||||
if not order then
|
if not order then
|
||||||
logger:log(ngx.ERR, "can't get plugins order from datastore : " .. err)
|
logger:log(ngx.ERR, "can't get plugins order from datastore : " .. err)
|
||||||
local ok, err = lock:unlock()
|
|
||||||
if not ok then
|
|
||||||
logger:log(ngx.ERR, "lock:unlock() failed : " .. err)
|
|
||||||
end
|
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
order = cjson.decode(order)
|
order = cjson.decode(order)
|
||||||
|
|
|
@ -42,10 +42,6 @@ logger:log(ngx.INFO, "ngx.ctx filled (ret = " .. ret .. ")")
|
||||||
local order, err = datastore:get("plugins_order")
|
local order, err = datastore:get("plugins_order")
|
||||||
if not order then
|
if not order then
|
||||||
logger:log(ngx.ERR, "can't get plugins order from datastore : " .. err)
|
logger:log(ngx.ERR, "can't get plugins order from datastore : " .. err)
|
||||||
local ok, err = lock:unlock()
|
|
||||||
if not ok then
|
|
||||||
logger:log(ngx.ERR, "lock:unlock() failed : " .. err)
|
|
||||||
end
|
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
order = cjson.decode(order)
|
order = cjson.decode(order)
|
||||||
|
|
|
@ -27,10 +27,6 @@ logger:log(ngx.INFO, "ngx.ctx filled (ret = " .. ret .. ")")
|
||||||
local order, err = datastore:get("plugins_order")
|
local order, err = datastore:get("plugins_order")
|
||||||
if not order then
|
if not order then
|
||||||
logger:log(ngx.ERR, "can't get plugins order from datastore : " .. err)
|
logger:log(ngx.ERR, "can't get plugins order from datastore : " .. err)
|
||||||
local ok, err = lock:unlock()
|
|
||||||
if not ok then
|
|
||||||
logger:log(ngx.ERR, "lock:unlock() failed : " .. err)
|
|
||||||
end
|
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
order = cjson.decode(order)
|
order = cjson.decode(order)
|
||||||
|
@ -45,7 +41,7 @@ for i, plugin_id in ipairs(order.log_stream) do
|
||||||
elseif plugin_lua == nil then
|
elseif plugin_lua == nil then
|
||||||
logger:log(ngx.INFO, err)
|
logger:log(ngx.INFO, err)
|
||||||
else
|
else
|
||||||
-- Check if plugin has log method
|
-- Check if plugin has log_stream method
|
||||||
if plugin_lua.log_stream ~= nil then
|
if plugin_lua.log_stream ~= nil then
|
||||||
-- New call
|
-- New call
|
||||||
local ok, plugin_obj = helpers.new_plugin(plugin_lua)
|
local ok, plugin_obj = helpers.new_plugin(plugin_lua)
|
||||||
|
|
|
@ -77,7 +77,7 @@ for i, plugin_id in ipairs(order.preread) do
|
||||||
if ret.status then
|
if ret.status then
|
||||||
if ret.status == utils.get_deny_status() then
|
if ret.status == utils.get_deny_status() then
|
||||||
ngx.ctx.reason = plugin_id
|
ngx.ctx.reason = plugin_id
|
||||||
logger:log(ngx.WARN, "denied access from " .. plugin_id .. " : " .. ret.msg)
|
logger:log(ngx.WARN, "denied preread from " .. plugin_id .. " : " .. ret.msg)
|
||||||
else
|
else
|
||||||
logger:log(ngx.NOTICE, plugin_id .. " returned status " .. tostring(ret.status) .. " : " .. ret.msg)
|
logger:log(ngx.NOTICE, plugin_id .. " returned status " .. tostring(ret.status) .. " : " .. ret.msg)
|
||||||
end
|
end
|
||||||
|
|
|
@ -169,7 +169,6 @@ function dnsbl:is_in_dnsbl(ip, server)
|
||||||
end
|
end
|
||||||
for i, ip in ipairs(ips) do
|
for i, ip in ipairs(ips) do
|
||||||
if ip:find("^127%.0%.0%.") then
|
if ip:find("^127%.0%.0%.") then
|
||||||
ngx.sleep(5)
|
|
||||||
return true, server
|
return true, server
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in a new issue