Linux下openresty+redis 的权限控制
前些日子研究了一下nginx,也基于它的源码编写了一些程序,但是发现这种“原始”的做法即使是一个简单的HelloWorld程序就非常的耗费时间。后来发现了openresty这个东西,它是前人集成了nginx和lua的,nginx的高阶版本。lua是一种小巧的,高级的脚本语言,能够很方便地在nginx的配置文件中编写出自己的业务流程。
业务说明:
传统的权限控制,如果是J2EE,都会在spring中添加filter的管控,这在只有一台服务器里面,并没有什么问题,但是在集群的世界里,这显然不怎么合理。我们不希望我们的上游服务器来处理权限的问题,而是在权限信息到达之前就已经处理好了,上游服务器只要跑数据,处理业务就行。于是权限控制这一功能模块,就放在负责分发任务的nginx身上,如果你是用nginx来搭建集群的话。。。
准备:
操作系统:centos,ubuntu感觉不怎么好用,因为动不动就会提示容量不足,本人也是不信邪,一次又一次的重装ubuntu,后来干脆换centos。
功能软件,如下图,这是我的虚拟机上的版本。
1、openresty-1.11.2.5 安装方法参照 https://openresty.org/cn/ ,安装完成后,就已经是nginx+lua了。最好是下载源码版,,然后自己编译一下,还是很爽的。
2、Redis-3.2.10 下载地址 https://redis.io/ 解压压缩包,然后打开解压后的目录,编译安装(网上很多教程)
3、lua-resty-http-0.11 这是个开源的第三方包,用于处理http的,就是访问地址用的,下载地址是 https://github.com/pintsized/lua-resty-http/ 虽然openresty本身也有,但是亲测之后并不好用
注意上面都是一堆源码,真正安装后可能不是在这个路径下了
前两个的安装过程相对独立,没什么好说的,找找资料就可以,关键说一下lua-rety-http的集成过程,打开文件夹找到下面两个文件,拷贝这两个文件
然后去到openresty安装完成后的地址,粘贴到这个文件夹下,准备工作到这里就结束了
openresty实际上也是nginx,我们依然可以在openresty的安装目录下,找到nginx的文件夹,这部分是独立,可以完全可以当作一般nginx那样启动,然后是代码。
先启动 redis
然后修改nginx.conf
最后启动nginx,在浏览器虽然输入个什么http://localhost/tt/token/swordnet123测试一下结果。