Lua介绍

Lua 是一个小巧的脚本语言。它是巴西里约热内卢天主教大学(Pontifical Catholic University of Rio de Janeiro)里的一个由Roberto Ierusalimschy、Waldemar Celes 和 Luiz Henrique de Figueiredo三人所组成的研究小组于1993年开发的。 其设计目的是为 了通过灵活嵌入应用程序中从而为应用程序提供灵活的扩展和定制功能。Lua由标准C编 写而成,几乎在所有操作系统和平台上都可以编译,运行。Lua并没有提供强大的库,这 是由它的定位决定的。所以Lua不适合作为开发独立应用程序的语言。Lua 有一个同时进 行的JIT项目,提供在特定平台上的即时编译功能。
简单来说
Lua 是一种轻量小巧的脚本语言,用标准C语言编写并以源代码形式开放, 其设计目 的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。
lua 语言具有以下特性

  • 支持面向过程(procedure-oriented)编程和函数式编程(functional programming);

  • 自动内存管理;只提供了一种通用类型的表(table),用它可以实现数组,哈希 表,集合,对象;

  • 语言内置模式匹配;闭包(closure); 函数也可以看做一个值;提供多线程(协同进 程,并非操作系统所支持的线程)支持;

  • 通过闭包和table可以很方便地支持面向对象编程所需要的一些关键机制,比如数据 抽象,虚函数,继承和重载等。
    Lua的应用场景:

  • 游戏开发

  • 独立应用脚本

  • Web 应用脚本

  • 扩展和数据库插件如:MySQL Proxy 和 MySQL WorkBench

  • 安全系统,如入侵检测系统

  • redis中嵌套调用实现类似事务的功能

  • web容器中应用处理一些过滤 缓存等等的逻辑,例如nginx。

OpenResty介绍

OpenResty(又称:ngx_openresty) 是一个基于 NGINX 的可伸缩的 Web 平台,由中国人章亦春发起,提供了很多高质量的第三方模块。
OpenResty 是一个强大的 Web 应用服务器,Web 开发人员可以使用 Lua 脚本语言调动 Nginx 支持的各种 C 以及 Lua 模块,更主要的是在性能方面,OpenResty可以 快速构造出 足以胜任 10K 乃至1000K以上并发连接响应的超高性能 Web 应用系统。
360,UPYUN,阿里云,新浪,腾讯网,去哪儿网,酷狗音乐等都是 OpenResty 的深度 用户。
OpenResty 简单理解,就相当于封装了nginx,并且集成了LUA脚本,开发人员只需要简 单的其提供了模块就可以实现相关的逻辑,而不再像之前,还需要在nginx中自己编写 lua的脚本,再进行调用了。

CentOS6.5离线安装Openrestry步骤

下面来说一下OpenResty搭建的基本步骤,基本环境centos6.5(无网络链接),用到的其他依赖包如下,我是提前下载好了,也可以在安装过程中通过命令下载。

通过命令下载安装:
OpenResty各个版本下载地址:http://openresty.org/cn/download.html
组件包下载地址(网上也能搜得到):
https://github.com/FRiCKLE/ngx_cache_purge/archive/2.3.tar.gz
https://github.com/yaoweibin/nginx_upstream_check_module/archive/v0.3.0.tar.gz

安装步骤

第一步:先安装相关依赖组件

执行如下代码:执行后等待安装完成即可。

注意:如果你的电脑或者服务器不能联网,则需要配置本地yum源,如果不会请参考:添加链接描述

yum install -y readline-devel pcre-devel openssl-devel gcc

第二步:在/usr目录下创建openresty目录

mkdir -p /usr/openresty

第三步:将OpenResty安装包拷贝或者上传到该目录,然后解压

tar -xzvf ngx_openresty-1.15.8.3.tar.gz
cd /usr/openresty/openresty-1.15.8.3/

第四部:执行安装

进入到bundle目录,cd bundle/LuaJIT-2.1-20190507/ ,然后依次执行下面两个命令进行安装:

make clean && make && make install
ln -sf luajit-2.1.0-alpha /usr/local/bin/luajit


第五步:安装组件

安装 ngx_cache_purge,nginx_upstream_check_module,这两个模块是作为nginx配合使用的模块,通过命令下载或者上传到/usr/openresty/bundle,然后解压即可,依次执行下面命令即可

cd bundle  #进入bundle目录下面,然后上传下载好的两个压缩包
#解压即可
tar -xvf ngx_cache_purge-2.3.tar.gz
tar -xvf nginx_upstream_check_module-0.3.0.tar.gz

第六步:安装OpenResty并且添加相应的组件

一次执行如下命令即可:

cd /usr/openresty/openresty-1.15.8.3/ #进入安装目录#执行安装命令  注意:组件路径根据实际情况指定
./configure --prefix=/usr/openresty --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/ -j2make && make install  #编译和编译安装

通过这三步,OpenResty就安装完毕了,看到如下界面,这两步需要耐心等待一会儿比较费时间

安装完毕后,我们可以进入到servers的主目录看看,可以发现多出了很多模块,因为OpenResty安装是和nginx紧密结合在一起的,因此自带nginx,然后我们进入到nginx的目录下,启动一下nginx看看是否好使。

第七步:启动nginx



可以看到nginx是可以正常使用的,但这并不是我们要的效果啊,使用过nginx的同学都知道,nginx可以作为反向代理服务器拦截特定的请求,做负载均衡转发等,但对于特定接口的类似于http之类的接口的精细化配置,其实直接使用nginx配置,其实还是挺麻烦的,事实上那也不是推荐的做法,而OpenResty真是因为自身整合了许多其他的组件,比如像http,redis,cache等,而且无缝整合nginx,自带的lua脚本可以满足大多数场景的需求,使得在上述的这一需求场景中变得很有意义,下面我们做一下简单的配置,通过配置OpenResty来实现访问特定的路径,其实说白了就是基于nginx做的进一步拦截处理,也就是 nginx+lua 的开发,

第八步:配置nginx+lua

首先我们在nginx的conf的配置目录下新建一个lua.conf,


内容如下,是不是发现这个和nginx里面的配置很相似,只是在这里面使用了lua的脚本语法,待会儿再次访问的时候就可以展示出来:

然后在nginx.conf中添加进去OpenResty的相关依赖包和我们上面新增的这个lua.conf

在http部分添加:

lua_package_path “/usr/servers/lualib/?.lua;;”;
lua_package_cpath “/usr/servers/lualib/?.so;;”;
include lua.conf;


使用下面的命令检查一下我们的配置是否有语法问题,这是个很好用的命令可以帮助我们检查nginx的配置的语法问题,然后我们重新加载一下nginx,即 ./nginx -s reload 即可:

玩家撒花!!!!!!!!!!!

OpenResty介绍和CentOS6.5离线安装Openresty详细步骤相关推荐

  1. 离线安装vim详细步骤

    背景 一台 Centos7.5 的服务器需要进行一些在线编辑操作,自带的 vi 功能太薄弱,因为希望安装一个 vim,然而该服务器是不能访问外网,因此在网上找了一些教程尝试安装. 思路 1. 找 vi ...

  2. python3安装pywin32_Python3 pywin32模块安装的详细步骤

    这篇文章主要介绍了Python3 pywin32模块安装的详细步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧 python新 ...

  3. CentOS6.4离线安装mysql5.6.22

    我们前面已经记录过一篇linux系统有网的情况下在线安装的情况. CentOS6.4安装mysql5.6.14 有一种情况是 linux系统没外网,但是需要安装mysql,这种情况的话 我们需要把包用 ...

  4. centos6.8安装oracle12C 详细步骤讲解

    2019独角兽企业重金招聘Python工程师标准>>> centos6.8安装oracle12C 详细步骤讲解 安装前环境配置 1 root身份安装依赖包 [root@dlp ~]# ...

  5. window11离线安装android子系统步骤

    window11离线安装android子系统步骤 一.window环境设置: window功能中启用虚拟机平台和启用 "Hyper-V" 后重启 重启的时候检查下BIOS的虚拟化是 ...

  6. 通过Liberty存储库下载保存组件,再分发并离线安装之操作步骤

    通过Liberty存储库下载保存组件,再分发并离线安装之操作步骤 1.设置Liberty主目录并进入bin目录 set WLP_HOME=C:\IBM\WebSphere\Liberty\19.0.0 ...

  7. 安装WebBuilder详细步骤和介绍,本人亲测!(遇到的一些问题及解决办法)

    安装WebBuilder详细步骤和介绍,本人亲测!(遇到的一些问题及解决办法) 参考文章: (1)安装WebBuilder详细步骤和介绍,本人亲测!(遇到的一些问题及解决办法) (2)https:// ...

  8. Linux安装mysql详细步骤

    linux安装mysql详细步骤 最近买了个腾讯云服务器,搭建环境. 该笔记用于系统上未装过mysql的干净系统第一次安装mysql.自己指定安装目录,指定数据文件目录. linux系统版本: Cen ...

  9. linux系统中安装jira,linux下安装jira详细步骤

    linux下安装jira详细步骤 2018年11月08日 | 萬仟网科技 | 我要评论 首先从官网下载jdk的安装包,将jdk的安装包上传到虚拟机或者服务器,在./usr/local/目录下面创建一个 ...

最新文章

  1. 学习java的知识体系路线
  2. 301转向和网址规范化
  3. 网络延迟造成插入多条重复数据
  4. C++虚继承(四) --- /d1 reportSingleClassLayout插入看类内存布局
  5. sql server2016里面的json功能 - 转
  6. c语言检查字符数组不为空,【C语言】检查输入是否为空,如为空,程序退出
  7. java程序员基础算法_java基础算法
  8. MarkDown简单使用教程
  9. 关于内网打印机的研究-利用PRET对惠普打印机进行渗透
  10. 数据库数据迁移的3种方案学习
  11. 1049: 平方和与立方和 Python
  12. 《结网》@互联网产品经理改变世界 读后感
  13. Unity利用正态分布绘制噪点图
  14. 调用百度地图API实现动态走航路线图
  15. 【期望】几何分布的期望
  16. 教你如何优秀的选择付费代理ip的提供商
  17. Scratch软件编程等级考试二级——201909
  18. GitHub 热门项目:机器学习编程 100 天
  19. Java实现上传图片到阿里云对象存储OSS
  20. 如何清空MSMQ的队列消息

热门文章

  1. 汽车之家跃升“头号引擎”,今年818全球汽车节有哪些看点?
  2. 跟着团子学SAP PS: PS模块相关底表 PROJ/PRPS/RPSCO
  3. 企业信息化不可缺少之方正OA
  4. 数字化和管理哲学 | 中国企业为啥用不好ERP却信中台和阿米巴
  5. 嵌入式物联网入门:物联网工程就业方向及前景
  6. 保利威在线导播台纯web版网页导播台测试
  7. Layui前端判断,Date()函数时间戳转换
  8. 计算机网络——PPP协议与HDLC协议
  9. python共轭复数_python print出共轭复数的方法详解
  10. 常见的排序算法及java实现