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

比如说,流量分发,什么意思呢?在一些大型的电商系统架构中,对于有些访问特别频繁的接口,我们常常会通过多级缓存区实现,从而提高系统抗住并发的能力,也就是系统的高可用能力,在经典的三级架构中,即nginx+堆缓存+redis缓存中,第一级缓存的是nginx,比如像一些请求访问非常频繁的商品详情页面,常见的做法是可以通过页面静态化模板技术将html页面通过nginx去访问,

但中间有一个问题需要解决的是,如果页面内容发生了变化,就需要通过程序重新生成html模板页面,对于小型电商网站页面不多的情况下可以这样搞,但是对于像淘宝那样的上万甚至上亿的页面来说,这样并不是一个很好的做法,因此另一个比较流行的做法是通过页面模板技术去处理数据的问题,说的通俗点就是,html模板页面提前生成好了,需要做的就是去请求数据,数据来了直接往html模板页面填充即可,既然是请求接口数据,那么这个数据的来源就可以通过缓存了,这时候三级缓存的作用就出来了,而OpenResty就是一个整合nginx完成接口请求逻辑的很好的组件,具体的运用会在下面一一来说,

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

1、mkdir -p /usr/servers ,在usr目录下创建一个servers的文件夹,

2、安装pcre-devel,这个是后面安装相关模块依赖的组件,否则后面会报错,执行下面的命令即可

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

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

cd /usr/servers/ngx_openresty-1.7.7.2/

4、进入到bundle目录,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_upstream_check_module,这两个模块是作为nginx配合使用的模块,通过命令下载到这个位置,然后解压即可,依次执行下面命令即可,

cd bundle
wget https://github.com/FRiCKLE/ngx_cache_purge/archive/2.3.tar.gz
tar -xvf 2.3.tar.gz

cd bundle
wget https://github.com/yaoweibin/nginx_upstream_check_module/archive/v0.3.0.tar.gz
tar -xvf v0.3.0.tar.gz

6、前面的准备步骤和依赖的组件添加完毕,下面就可以开始安装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

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

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


启动nginx,

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

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


这时候我们再去浏览器访问一下,可以看到,已经走了我们的lua.conf中的配置,

本篇到这里基本就结束了,后面会对OpenResty的具体使用做进一步的说明,最后感谢观看!

centos6.5 安装 OpenResty相关推荐

  1. CentOS6.4 安装OpenResty和Redis 并在Nginx中利用lua简单读取Redis数据

    1.下载OpenResty和Redis OpenResty下载地址:wget http://openresty.org/download/ngx_openresty-1.4.3.6.tar.gz Re ...

  2. OpenResty介绍和CentOS6.5离线安装Openresty详细步骤

    Lua介绍 Lua 是一个小巧的脚本语言.它是巴西里约热内卢天主教大学(Pontifical Catholic University of Rio de Janeiro)里的一个由Roberto Ie ...

  3. centos6一键安装vsftpd脚本

    centos6一键安装vsftpd脚本 手动安装vsftpd参考教程:Centos下安装Vsftpd的图文教程 vsftpd脚本功能: 1.安装 (命令执行:sh xxx.sh)2.添加ftp用户 ( ...

  4. linux卸载hadoop版本,centos6.5 安装hadoop1.2.1的教程详解【亲测版】

    本篇只简单介绍安装步骤 1. 角色分配 10.11.84.4 web-crawler--1.novalocal master/slave 10.11.84.5 web-crawler--2.noval ...

  5. 在Ubuntu 14.04 64bit上安装OpenResty 1.9.7.4

    为了自己的ThinkPad T420上面的Ubuntu可以使用openresty开发,我特地记录一下安装过程: 安装依赖包 apt-get install libreadline-dev libncu ...

  6. centos6.8 安装nginx

    centos6.8 安装nginx需要编译nginx源码,不过没啥大不了的,按照步骤来,肯定能成功. 1.安装必要的依赖: yum install -y gcc-c++yum install -y p ...

  7. centos6.8安装 gitlab 9.3.5及使用

    centos6.8安装 gitlab 9.3.5及使用 环境准备: [root@caosm03 conf]# cat /etc/issue CentOS release 6.8 (Final) Ker ...

  8. Centos6.6安装zabbix server 3.2

    2019独角兽企业重金招聘Python工程师标准>>> Centos6.6安装zabbix server 3.2 mysql,php,tengine 安装包和表分区脚本下载:http ...

  9. 安装OpenResty开发环境

    OpenResty是一个基于 Nginx 与 Lua 的高性能 Web 平台,其内部集成了大量精良的 Lua 库.第三方模块以及大多数的依赖项.用于方便地搭建能够处理超高并发.扩展性极高的动态 Web ...

最新文章

  1. 暂停和播放CSS3动画的两种实现方法
  2. python 只取年月日 字符串_Python的数据类型
  3. linux提取字符串特定结果
  4. PIC32单片机harmony开发环境 - i2c例程和代码分析
  5. [密码学基础][每个信息安全博士生应该知道的52件事][Bristol Cryptography][第9篇]香农对熵和信息的定义是什么?
  6. “false”类型转换:string类型转boolean - 代码篇
  7. android 热门开源库,GitHub安卓热门开源资源在项目中的使用及项目总结
  8. oracle调用MySQL函数,Oracle的INSTR函数MySQL实现
  9. MySQL MHA切换失败一例
  10. Windows 搭建ARM虚拟机 UOS系统
  11. 基于AutoCAD自动数控编程工具NC_Manu_Tool(最新V1.39)
  12. 两金压降两金指什么_​什么是两金压降
  13. 基于腾讯旗下代码管理平台CODING的CI/CD集成
  14. mysql插入路径_Conventional-pathinsert(传统路径插入)
  15. larval 捕获mysql错误_larval 如何捕获mysql错误
  16. 数学--数论--欧几里得定理和拓展欧几里得定理
  17. NB-IoT是什么?
  18. 【深度学习】详解 MAE
  19. 计算机里的MAC,怎么在mac苹果电脑中查看电脑开机运行的时长
  20. 道一云与畅捷通T+对接集成获取报销信息列表=>凭证创建

热门文章

  1. linux下线程控制
  2. Citrix XenServer 6.5 发布
  3. ASP.NET抓取网页内容
  4. vs2010 代码混淆 代码加密
  5. 服务器托管常见问题纠纷与解决方法
  6. IE Automation Tabs
  7. 十大原因宣判Windows死亡 Linux终将胜利
  8. Bone collector//动态规划
  9. 全网最全Python爬虫工具使用指南
  10. Flask安装首页显示