Openresty安装01,


为什么有这系列文章

权限控制在任何的系统中都为一个基本模块,没有权限,就不要谈系统。权限控制的重要性不言而喻。在我所做的Spring Cloud微服务系统,采用的权限控制框架为Spring Cloud Oauth2和Spring Boot Securtiy,这两个框架组合构成了一个强大的权限安全模块。搭建好,设置好,其实是非常简单的。Spring Boot Securtiy是对方法层面的控制,所以要在方法上加注解。随着业务的扩张,注解这种方式无疑给开发人员带来了非常大的工作量,由于开发人员的不规范,甚至连注解都不愿意写了。我在思考能不能废弃掉Spring Cloud Oauth2和Spring Boot Securtiy,废弃掉注解,让开发人员从注解中解放出来。

带着这样的思考,我首先想到的是kong api gateway,kong提供了非常多的插件化的模块,能够满足大部分的业务需求,但不能满足RBAC(基于角色的权限控制)。后来就想自己去实现。实现的过程就是不断学习和探索的过程,我从0基础的lua和openresty,花了三天的时间就实现了本系列文章所写的全部功能。

openresty安装步骤

1、创建目录/usr/servers,以后我们把所有软件安装在此目录

mkdir -p /usr/servers  
cd /usr/servers/  

2、安装依赖

yum install libreadline-dev libncurses5-dev libpcre3-dev libssl-dev perl 

3、下载ngx_openresty-1.7.7.2.tar.gz并解压

wget http://openresty.org/download/ngx_openresty-1.7.7.2.tar.gz  
tar -xzvf ngx_openresty-1.7.7.2.tar.gz  

ngx_openresty-1.7.7.2/bundle目录里存放着nginx核心和很多第三方模块,比如有我们需要的Lua和LuaJIT。

4、安装LuaJIT

cd bundle/LuaJIT-2.1-20150120/  
make clean && make && make install  
ln -sf luajit-2.1.0-alpha /usr/local/bin/luajit  

5、下载ngx_cache_purge模块,该模块用于清理nginx缓存;
下载nginx_upstream_check_module模块,该模块用于ustream健康检查

cd /usr/servers/ngx_openresty-1.7.7.2/bundle  
wget https://github.com/yaoweibin/nginx_upstream_check_module/archive/v0.3.0.tar.gz  
tar -xvf v0.3.0.tar.gz   
wget https://github.com/FRiCKLE/ngx_cache_purge/archive/2.3.tar.gz  
tar -xvf 2.3.tar.gz  

6、安装ngx_openresty
注意安装之前要先装nginx
安装nginx 指定目录:

./configure --prefix=/usr/servers/nginx --with-http_stub_status_module --with-http_ssl_module --with-pcre=/usr/servers/src/pcre-8.35

安装ngx_openresty

cd /usr/servers/ngx_openresty-1.7.7.2  
./configure --prefix=/usr/servers --with-http_realip_module  --with-pcre  --with-luajit --add-module=./bundle/ngx_cache_purge-2.3/ --add-module=./bundle/nginx_upstream_check_module-0.3.0/ -j2  
make && make install  

–with*** 安装一些内置/集成的模块
–with-http_realip_module 取用户真实ip模块
-with-pcre Perl兼容的达式模块
–with-luajit 集成luajit模块
–add-module 添加自定义的第三方模块,如此次的ngx_che_purge

7.到/usr/servers目录下
会发现多出来了如下目录,说明安装成功
/usr/servers/luajit :luajit环境,luajit类似于java的jit,即即时编译,lua是一种解释语言,通过luajit可以即时编译lua代码到机器代码,得到很好的性能;
/usr/servers/lualib:要使用的lua库,里边提供了一些默认的lua库,如redis,json库等,也可以把一些自己开发的或第三方的放在这;

nginx+lua+openresty 实例1

1、在http部分添加如下配置

lua模块路径,多个之间”;”分隔,其中”;;”表示默认搜索路径,默认到/usr/servers/nginx下找

lua_package_path “/usr/servers/lualib/?.lua;;”; #lua 模块
lua_package_cpath “/usr/servers/lualib/?.so;;”; #c模块

2、在nginx.conf中的http部分添加include lua.conf包含此文件片段
Java代码 收藏代码
include/usr/servers/example/lua.conf;

在/usr/server/nginx/conf下
vim lua.conf

#lua.conf  
server {  
    listen       80;  
    server_name  _;  
    
    location /lua {  
    	default_type 'text/html';  
        content_by_lua 'ngx.say("hello world")';  
    } 
}  

相关内容

    暂无相关文章