安装OpenResty开发环境
OpenResty是一个基于 Nginx 与 Lua 的高性能 Web 平台,其内部集成了大量精良的 Lua 库、第三方模块以及大多数的依赖项。用于方便地搭建能够处理超高并发、扩展性极高的动态 Web 应用、Web 服务和动态网关(摘自官网)。本文将会介绍如何在Centos7上,安装Nginx+Lua的开发环境,并运行一个“Hello World”示例。
一、环境安装
1.1 创建工作路径
我计划将Openresty安装到/usr/servers下,首先创建这个文件夹。
[root@localhost ~]# mkdir -p /usr/servers
[root@localhost ~]# cd /usr/servers/
[root@localhost servers]#
1.2 安装依赖库
[root@localhost servers]# yum install readline-devel pcre-devel openssl-devel perl make gcc -y
1.3 下载Nginx及要安装的模块
其中,ngx_cache_purge模块用于清理nginx缓存,nginx_upstream_check_module用于ustream的健康检查。
[root@localhost servers]# pwd
/usr/servers
[root@localhost servers]# wget http://openresty.org/download/ngx_openresty-1.7.7.2.tar.gz
[root@localhost servers]# tar -xzvf ngx_openresty-1.7.7.2.tar.gz
[root@localhost servers]# cd /usr/servers/ngx_openresty-1.7.7.2/bundle
[root@localhost bundle]# pwd
/usr/servers/ngx_openresty-1.7.7.2/bundle
[root@localhost bundle]# wget https://github.com/FRiCKLE/ngx_cache_purge/archive/2.3.tar.gz
[root@localhost bundle]# tar -xvf 2.3.tar.gz
[root@localhost bundle]# cd /usr/servers/ngx_openresty-1.7.7.2/bundle
[root@localhost bundle]# pwd
/usr/servers/ngx_openresty-1.7.7.2/bundle
[root@localhost bundle]# wget https://github.com/yaoweibin/nginx_upstream_check_module/archive/v0.3.0.tar.gz
[root@localhost bundle]# tar -xvf v0.3.0.tar.gz
1.4 安装LuaJIT
[root@localhost bundle]# cd /usr/servers/ngx_openresty-1.7.7.2/bundle/LuaJIT-2.1-/
[root@localhost LuaJIT-2.1-]# pwd
/usr/servers/ngx_openresty-1.7.7.2/bundle/LuaJIT-2.1-
[root@localhost LuaJIT-2.1-]# make clean && make && make install
[root@localhost LuaJIT-2.1-]# ln -sf luajit-2.1.-alpha /usr/local/bin/luajit
[root@localhost LuaJIT-2.1-]# lua -v
Lua 5.1. Copyright (C) - Lua.org, PUC-Rio
[root@localhost LuaJIT-2.1-]# luajit -v
LuaJIT 2.1.-alpha -- Copyright (C) - Mike Pall. http://luajit.org/
1.5 安装ngx_openresty
[root@localhost LuaJIT-2.1-]# cd /usr/servers/ngx_openresty-1.7.7.2
[root@localhost ngx_openresty-1.7.7.2]# pwd
/usr/servers/ngx_openresty-1.7.7.2
[root@localhost 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./ -j2
[root@localhost ngx_openresty-1.7.7.2]# make && make install
至此,基本的环境已经安装完成了,nginx可执行文件为:/usr/servers/nginx/sbin/nginx,可以通过/usr/servers/nginx/sbin/nginx -V 命令来查看nginx的版本及安装的模块。
二、环境配置及示例
2.1 配置nginx.conf
nginx.conf是Nginx的主配置文件,所有的配置都是从这里开始的。我的计划是将lua脚本、依赖库配置、与lua相关的server、location等配置都放到外部的目录中,这样不用每次都动到nginx.conf。修改/usr/servers/nginx/conf/nginx.conf,如下:
[root@localhost ~]# cat /usr/servers/nginx/conf/nginx.conf
worker_processes ; error_log logs/error.log;
events {
worker_connections ;
} http { include mime.types;
default_type text/html;
#lua模块路径
lua_package_path "/usr/example/lualib/?.lua;;"; #lua 模块
lua_package_cpath "/usr/example/lualib/?.so;;"; #c模块
include /usr/example/example.conf;
}
2.2 配置example.conf
[root@localhost ~]# mkdir /usr/example
[root@localhost ~]# vim /usr/example/example.conf
[root@localhost ~]# cat /usr/example/example.conf
server {
listen ;
server_name _; location /lua {
default_type 'text/html';
lua_code_cache off;
content_by_lua_file /usr/example/lua/test.lua;
}
}
2.3 示例——test.lua
[root@localhost ~]# mkdir /usr/example/lua
[root@localhost ~]# vim /usr/example/lua/test.lua
[root@localhost ~]# cat /usr/example/lua/test.lua
ngx.say("hello world");
2.4 验证
首先启动nginx,你会发现nginx给了一个警告,这句警告是因为在/usr/example/example.conf的第7行上,我们关闭了lua_code_cache。这个配置默认是打开的,即Nginx在启动的时候会将lua脚本都cache起来,这样系统在调用这些脚本时就会很快。而关闭这个配置的话,nginx每次调用都会重新load一遍,会对性能有一定的影响。因为我们是在开发环境,我们不希望更改脚本之后就重启nginx,所以就把这个配置给关闭了。
[root@localhost ~]# /usr/servers/nginx/sbin/nginx
nginx: [alert] lua_code_cache is off; this will hurt performance in /usr/example/example.conf:
接下来在浏览器中访问对应的路径,你会得到如下的结果。(提示:若没有出现,可以检查一下系统防火墙)

备注:
centos下还可以通过yum的方式安装openresty,但在国内的网络环境下,这种方式时灵时不灵(国外的主机上就没有问题),我怀疑是国内网络的问题。有兴趣的同学可以尝试下。具体命令如下:
yum install yum-utils
yum-config-manager --add-repo https://openresty.org/yum/centos/OpenResty.repo
yum install openresty
安装OpenResty开发环境的更多相关文章
- 安装Nginx+Lua+OpenResty开发环境配置全过程实例
安装Nginx+Lua+OpenResty开发环境配置全过程实例 OpenResty由Nginx核心加很多第三方模块组成,默认集成了Lua开发环境,使得Nginx可以作为一个Web Server使用. ...
- Linux安装LAMP开发环境及配置文件管理
Linux主要分为两大系发行版,分别是RedHat和Debian,lamp环境的安装和配置也会有所不同,所以分别以CentOS 7.1和Ubuntu 14.04做为主机(L) Linux下安装软件,最 ...
- win使用MSYS2安装Qt开发环境
原文链接 MSYS2 下载地址: pacman的具体用法 有pacman的具体使用方法.我们首先对系统升级 我们首先对系统升级 pacman -Syu 就会检测整个系统可以升级的组件,并自动下载安装, ...
- Appium移动自动化测试(二)--安装Android开发环境
继续Appium环境的搭建. 第二节 安装Android开发环境 如果你的环境是MAC那么可以直接跳过这一节.就像我们在用Selenium进行web自动化测试的时候一样,我们需要一个浏览器来执行测试 ...
- Appium移动自动化测试(二)--安装Android开发环境(转)
Appium移动自动化测试(二)--安装Android开发环境 2015-06-04 17:30 by 虫师, 35299 阅读, 23 评论, 收藏, 编辑 继续Appium环境的搭建. 第二节 ...
- 如何用docker安装laravel开发环境
如何用docker安装laravel开发环境 看laravel框架的官方文档安装部分时,发现需要安装特别多软件,估计还有许多复杂的配置,官方推荐使用Laravel Homestead虚拟机进行安装,但 ...
- [树莓派(raspberry pi)] 02、PI3安装openCV开发环境做图像识别(详细版)
前言 上一篇我们讲了在linux环境下给树莓派安装系统及入门各种资料 ,今天我们更进一步,尝试在PI3上安装openCV开发环境. 博主在做的过程中主要参考一个国外小哥的文章(见最后链接1),不过其教 ...
- 一键安装Android开发环境
一键安装Android开发环境 1 下载tadp-3.0r4-linux-x64.run 进入下面的地址下载: https://developer.nvidia.com/gameworksdownlo ...
- 阿里云学生服务器搭建网站-Ubuntu16.04安装php开发环境
阿里云学生服务器搭建网站(2)-Ubuntu16.04安装php开发环境 优秀博文:https://www.linuxidc.com/Linux/2016-10/136327.htm https:/ ...
随机推荐
- Linux下">/dev/null 2>&1 "相关知识说明
在学习Linux的过程中,常会看到一些终端命令或者程序中有">/dev/null 2>&1"出现,由于已经遇到了好几次了,为了理解清楚,不妨花点时间百度或者go ...
- 使用Newtonsoft将DataTable转Json
Newtonsoft提供的将DataTable转成Json: /// <summary> /// DataTable转Json /// </summary> /// <p ...
- monit配置文件
监控模式:(MONITRING MODE) Monit支持三种监控模式, active--Monitj监控一个服务,为了防止一系列问题,Monit会执行以及发送警报,停止,启动,重启,这是一个缺省的模 ...
- apache 2.4.23 只能本地访问,其他用户不能访问,提示You don't have permission to access
这个版本的httpd.conf的配置方法跟原版本的设置不一样了. 需要在目录安全配置中 修改为 Require all granted 比如 把Require local 修改为Require al ...
- Redis 教程 Java工程师学习知识点
1. Redis简介及安装 1.1 Redis 简介 Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库. Redis 与其他 key - value 缓存产品有以下 ...
- Codeforces 584 - A/B/C/D/E - (Done)
链接:https://codeforces.com/contest/584 A - Olesya and Rodion - [水] 题解:注意到 $t$ 的范围是 $[2,10]$,对于位数小于 $2 ...
- Gym 102028C - Supreme Command - [思维题][2018-2019 ACM-ICPC Asia Jiaozuo Regional Contest Problem C]
题目链接:https://codeforces.com/gym/102028/problem/C Lewis likes playing chess. Now he has n rooks on th ...
- Luogu 1086 - 花生采摘 - [简单模拟]
题目链接:https://www.luogu.org/problemnew/show/P1086 题目描述鲁宾逊先生有一只宠物猴,名叫多多.这天,他们两个正沿着乡间小路散步,突然发现路边的告示牌上贴着 ...
- ES6中Set 和 Map用法
JS中Set与Map用法 一.Set 1.基本用法 ES6 提供了新的数据结构 Set.它类似于数组,但是成员的值都是唯一的,没有重复的值. Set 本身是一个构造函数,用来生成 Set 数据结构. ...
- Java ee第一周的作业
这学期目标:对Java ee 进行一定程度的学习,希望最后自己能尽可能掌握Java ee的知识 企业及应用的特点:企业级的应用通常比较庞大,而且其中的数据需要保密. Java ee 框架图