# 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"
```
后续以上逻辑可通过业务系统中完成