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的访问控制

实现思路:第一种基于nginxngx_http_access_module模块实现;第二种基于OpenResty的lua-nginx-module模块实现。

待完成

第一种基于nginxngx_http_access_module实现

第二种基于OpenRestylua-nginx-module实现

基于Geo的访问控制

待完成

基于Cookie的访问控制

待完成

基于Header的访问控制

待完成

客户端的身份认证

待完成

客户端访问权限

待完成

数据的加解密

待完成

数据的签名和验证

待完成

SSL

待完成

请求速率限制

待完成

流量控制限制

待完成