开发一个访问限制的小脚本
Nginx+OpenRestry+Lua开发 关键代码如下
http{
# 这里设置为 off,是为了避免每次修改之后都要重新 reload 的麻烦。
# 在生产环境上需要 lua_code_cache 设置成 on。
lua_code_cache off;
# lua_package_path可以配置openresty的文件寻址路径,$PREFIX 为openresty安装路径
# 文件名使用“?”作为通配符,多个路径使用“;”分隔,默认的查找路径用“;;”
# 设置纯 Lua 扩展库的搜寻路径
lua_package_path "$prefix/lualib/?.lua;;";
# 设置 C 编写的 Lua 扩展模块的搜寻路径(也可以用 ';;')
lua_package_cpath "$prefix/lualib/?.so;;";
server {
location / {
access_by_lua_file lua/white_ip_list.lua;
proxy_pass http://lbs;
}
} lua/white_ip_list.lua
local black_ips = {["想要不拦截的ip"]=true}
local ip = ngx.var.remote_addr
if true ~= black_ips[ip] then
ngx.exit(ngx.HTTP_FORBIDDEN)
return;
end 本文作者为DBC,转载请注明。