OpenResty是一个基于Nginx与Lua的实现的高性能、高性能Web平台。OpenResty集成了许多优秀的访问控制相关的Lua库、第三方模块。更方便的是可以使用Lua脚本拓展OpenResty访问控制功能,提高了开发效率、降低了开发成本。
需要达成的目标
- IPv4或IPv6的访问控制(比如:黑白名单)
- 基于Geo的访问控制
- 基于Cookie的访问控制
- 基于Header的访问控制
- 客户端的身份认证
- Basic Auth认证
- JWT认证
- Oauth
- …
- 权限
- 请求的解密与验签、响应的签名与加密
- SSL
- 请求速率限制
- 流量控制限制
使用Docker启动OpenRestry测试实例
docker run \
--name openresty \
-p 80:80 \
-d \
-v ${PWD}/data/conf.d:/etc/nginx/conf.d \
-v ${PWD}/data/lua:/usr/local/openresty/lualib/access \
openresty/openresty:alpine
基于IPv4或IPv6的访问控制
实现思路:第一种基于nginx
的ngx_http_access_module
模块实现;第二种基于OpenResty的lua-nginx-module
模块实现。
待完成
第一种基于nginx
的ngx_http_access_module
实现
第二种基于OpenResty
的lua-nginx-module
实现
基于Geo的访问控制
待完成
基于Cookie的访问控制
待完成
基于Header的访问控制
待完成
客户端的身份认证
待完成
客户端访问权限
待完成
数据的加解密
待完成
数据的签名和验证
待完成
SSL
待完成
请求速率限制
待完成
流量控制限制
待完成