nginx + lua + redis 防黑IP
Posted 知_行
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了nginx + lua + redis 防黑IP相关的知识,希望对你有一定的参考价值。
lua脚本
local redis = require "resty.redis" local red = redis.new() red.connect(red, ‘127.0.0.1‘, ‘6379‘) local myIP = ngx.req.get_headers()["$remote_addr"] if myIP == nil then myIP = ngx.req.get_headers()["x_forwarded_for"] end if myIP == nil then myIP = ngx.var.remote_addr end local hasIP = red:sismember(‘black.ip‘,myIP) if hasIP==1 then return ngx.exec("@ErrorPage") else return ngx.exec("@mysite") end
nginx配置
server { listen 80; server_name localhost; location / { access_by_lua_file /var/openresty/nginx/conf/my_access_limit.lua; } location @ErrorPage { root html/ErrorPage; index index.html index.htm; } location @mysite { root html/mysite; index index.html index.htm; } }
END!
以上是关于nginx + lua + redis 防黑IP的主要内容,如果未能解决你的问题,请参考以下文章
Nginx 通过 Lua + Redis 实现动态封禁 IP
Nginx 通过 Lua + Redis 实现动态封禁 IP