centos6.5 安装 OpenResty
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相关推荐
- 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 ...
- OpenResty介绍和CentOS6.5离线安装Openresty详细步骤
Lua介绍 Lua 是一个小巧的脚本语言.它是巴西里约热内卢天主教大学(Pontifical Catholic University of Rio de Janeiro)里的一个由Roberto Ie ...
- centos6一键安装vsftpd脚本
centos6一键安装vsftpd脚本 手动安装vsftpd参考教程:Centos下安装Vsftpd的图文教程 vsftpd脚本功能: 1.安装 (命令执行:sh xxx.sh)2.添加ftp用户 ( ...
- 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 ...
- 在Ubuntu 14.04 64bit上安装OpenResty 1.9.7.4
为了自己的ThinkPad T420上面的Ubuntu可以使用openresty开发,我特地记录一下安装过程: 安装依赖包 apt-get install libreadline-dev libncu ...
- centos6.8 安装nginx
centos6.8 安装nginx需要编译nginx源码,不过没啥大不了的,按照步骤来,肯定能成功. 1.安装必要的依赖: yum install -y gcc-c++yum install -y p ...
- centos6.8安装 gitlab 9.3.5及使用
centos6.8安装 gitlab 9.3.5及使用 环境准备: [root@caosm03 conf]# cat /etc/issue CentOS release 6.8 (Final) Ker ...
- Centos6.6安装zabbix server 3.2
2019独角兽企业重金招聘Python工程师标准>>> Centos6.6安装zabbix server 3.2 mysql,php,tengine 安装包和表分区脚本下载:http ...
- 安装OpenResty开发环境
OpenResty是一个基于 Nginx 与 Lua 的高性能 Web 平台,其内部集成了大量精良的 Lua 库.第三方模块以及大多数的依赖项.用于方便地搭建能够处理超高并发.扩展性极高的动态 Web ...
最新文章
- 暂停和播放CSS3动画的两种实现方法
- python 只取年月日 字符串_Python的数据类型
- linux提取字符串特定结果
- PIC32单片机harmony开发环境 - i2c例程和代码分析
- [密码学基础][每个信息安全博士生应该知道的52件事][Bristol Cryptography][第9篇]香农对熵和信息的定义是什么?
- “false”类型转换:string类型转boolean - 代码篇
- android 热门开源库,GitHub安卓热门开源资源在项目中的使用及项目总结
- oracle调用MySQL函数,Oracle的INSTR函数MySQL实现
- MySQL MHA切换失败一例
- Windows 搭建ARM虚拟机 UOS系统
- 基于AutoCAD自动数控编程工具NC_Manu_Tool(最新V1.39)
- 两金压降两金指什么_​什么是两金压降
- 基于腾讯旗下代码管理平台CODING的CI/CD集成
- mysql插入路径_Conventional-pathinsert(传统路径插入)
- larval 捕获mysql错误_larval 如何捕获mysql错误
- 数学--数论--欧几里得定理和拓展欧几里得定理
- NB-IoT是什么?
- 【深度学习】详解 MAE
- 计算机里的MAC,怎么在mac苹果电脑中查看电脑开机运行的时长
- 道一云与畅捷通T+对接集成获取报销信息列表=>凭证创建