# nginx_openresty_redis_control **Repository Path**: hudan870614/nginx_openresty_redis_control ## Basic Information - **Project Name**: nginx_openresty_redis_control - **Description**: 基于Lua 语言, 整合 nginx + openresty + redis 实现前端请求控制插件 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 1 - **Created**: 2019-10-28 - **Last Updated**: 2023-04-18 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ### 基于Lua语言下, 整合 nginx + openresty + redis 实现前端请求控制插件 **实现原理**
``` 外部企业服务请求到 nginx 时,会获取请求时的IP,再根据指定的白名单redis-key去redis查询,若不存在则返回403错误、禁止访问,存在则放行。 ``` **现有支持** 1. 支持IP白名单 2. 支持docker部署 3. 支持redis参数通过环境变量获取 **引用、启用镜像库** ``` docker pull nginx_openresty_redis_control:v1.1 docker run --env ENV_REDIS_DB_INDEX=15 --env ENV_REDIS_IP=172.17.0.3 --name nginx_openresty_redis_control -p 80:80 -idt nginx_openresty_redis_control:v1.1 ``` **支持环境变量说明如下** | 变量名称 | 默认值 | 说明 | | ----------------------- | ------------------- | ---------------- | | ENV_REDIS_IP | 172.17.0.1 | redis-host | | ENV_REDIS_PASS | nil | redis-pass | | ENV_REDIS_PORT | 6379 | redis-port | | ENV_REDIS_DB_INDEX | 0 | redis-db-index | | ENV_REDIS_KEY_WHITE_IPS | unite:app:white:ips | redis 白名单 set | **自定义nginx配置** ``` 若需要自定义 nginx 相关配置文件,可通过 docker run -v 命令进行挂载,参考 nginx.conf 文件
注意,容器中:
日志目录在 /usr/servers/nginx/logs
nginx.conf 在 /usr/servers/nginx/conf/nginx.conf
建议:以上目录在执行时本地挂载 ``` **本地构建** 若需要本地构建,可将git下载到本地,再执行如下命令
``` docker build -t nginx_openresty_redis_control:v1.1 . ``` **添加白名单IP** 若需要添加白名单IP,则根据向上述对应的key进行进行SADD操作

如:假如 unite:app:white:ips 不变, 增加白名单 172.0.0.1,则登陆 redis-console 手动执行:
``` SADD unite:app:white:ips "172.0.0.1" ``` 后续以上逻辑可通过业务系统中完成