log_by_lua_block { local logger = require "logger" -- bad behavior local use_bad_behavior = {% if USE_BAD_BEHAVIOR == "yes" %}true{% else %}false{% endif +%} local behavior = require "behavior" local bad_behavior_status_codes = {% raw %}{{% endraw %}{% if BAD_BEHAVIOR_STATUS_CODES != "" %}{% set elements = BAD_BEHAVIOR_STATUS_CODES.split(" ") %}{% for i in range(0, elements|length) %}"{{ elements[i] }}"{% if i < elements|length-1 %},{% endif %}{% endfor %}{% endif %}{% raw %}}{% endraw +%} local bad_behavior_threshold = {{ BAD_BEHAVIOR_THRESHOLD }} local bad_behavior_count_time = {{ BAD_BEHAVIOR_COUNT_TIME }} local bad_behavior_ban_time = {{ BAD_BEHAVIOR_BAN_TIME }} if use_bad_behavior then behavior.count(bad_behavior_status_codes, bad_behavior_threshold, bad_behavior_count_time, bad_behavior_ban_time) end -- remote API local use_remote_api = {% if USE_REMOTE_API == "yes" %}true{% else %}false{% endif +%} local remoteapi = require "remoteapi" if use_remote_api then if ngx.status == ngx.HTTP_FORBIDDEN then -- TODO check if IP is global + good reason local res, data = remoteapi.ip(ngx.var.remote_addr, "other") if res then logger.log(ngx.NOTICE, "REMOTE API", "Successfully reported ip " .. ngx.var.remote_addr) else logger.log(ngx.ERR, "REMOTE API", "Error while reporting ip " .. ngx.var.remote_addr .. " : " .. data) end end end }