小知识:nginx 集成lua操作mysql的过程解析

前言

lua是一夸小巧,灵活且高效的脚本语言,用标准c语言编写并以源代码形式开发,在很多业务场景下配合适当的设计,可以带来意想不到的效果;

举个常见的例子,现在几乎很多公司都会用到nginx作为代理服务器,假如现在有这么个需求,需要做黑名单过滤,或者在网关这一层做流控,这该怎么做呢?

实现思路

直接在nginx做配置黑名单,通过编写逻辑块实现;

在服务端(java)中编写过滤器,在过滤器中统一拦截;

在服务端(java)中编写拦截器,在拦截器中统一拦截;

这里列举了3种实现的思路,至于实现方案,可能还有更多,但是我们想想,在nginx中编写逻辑块貌似不是很多人擅长的;在代码层面做不是不可以,而是这样一来,在涉及到高并发的业务高峰期,这必然会对后端服务造成较大的压力,那么还有没有其他更好的处理办法呢?

这就是要说的lua,即nginx作为网关仍然作为代理服务器,由于nginx可以集成lua,于是使用lua进行配合,来完成上面的业务实现的设计;

ngx_lua模块概念

ngx_lua模块由淘宝技术团队开发,通过将lua解释器集成进nginx;

可采用lua脚本实现业务逻辑,由于lua的紧凑、快速以及内建协程,所以在保证高并发服务能力的同时极大地降低了业务逻辑实现成本;

openrestry

openresty是一个基于nginx与 lua 的高性能 web 平台,其内部集成了大量精良的 lua库、第三方模块以及大多数的依赖项;用于方便地搭建能够处理超高并发、扩展性极高的动态 web 应用、web 服务和动态网关;

openresty内部已经集成了nginx和lua,所以使用起来会更加方便;

简单来说,直接安装并使用openrestry,就可以达到同时使用nginx与lua的效果,同时基于openrestry,还可以在内部操作其他中间件,比如mysql,redis,kafka等,这样就使得业务架构在设计上具备了更大的灵活性;

openrestry安装步骤

1、下载openrestry

?
1
wget https://openresty.org/download/openresty-1.15.8.2.tar.gz

2、解压缩文件

?
1
tar -zxf openresty-1.15.8.2.tar.gz

3、进入openresty目录执行配置

这一步有点类似于nginx的源码安装,进行相关的环境变量的配置,这里直接使用默认的就好;

?
1
./configure

%小知识:nginx 集成lua操作mysql的过程解析-猿站网-插图

%小知识:nginx 集成lua操作mysql的过程解析-1猿站网-插图

4、 执行命令:make

声明: 猿站网有关资源均来自网络搜集与网友提供,任何涉及商业盈利目的的均不得使用,否则产生的一切后果将由您自己承担! 本平台资源仅供个人学习交流、测试使用 所有内容请在下载后24小时内删除,制止非法恶意传播,不对任何下载或转载者造成的危害负任何法律责任!也请大家支持、购置正版! 。本站一律禁止以任何方式发布或转载任何违法的相关信息访客发现请向站长举报,会员发帖仅代表会员个人观点,并不代表本站赞同其观点和对其真实性负责。本网站的资源部分来源于网络,如有侵权烦请发送邮件至:2697268773@qq.com进行处理。
建站知识

小知识:在Linux 服务器下修改防火墙允许该端口远程访问的方法

2023-3-16 2:29:36

建站知识

小知识:linux允许端口远程访问开放端口的方法

2023-3-16 2:37:43

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索