开发一个访问限制的小脚本
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,转载请注明。