OpenResty (也称为 ngx_openresty)是一个全功能的 Web 应用服务器。它打包了标准的 Nginx 核心,很多的常用的第三方模块,以及它们的大多数依赖项。
通过众多进行良好设计的 Nginx 模块,OpenResty 有效地把 Nginx 服务器转变为一个强大的 Web 应用服务器,基于它开发人员可以使用 Lua 编程语言对 Nginx 核心以及现有的各种 Nginx C 模块进行脚本编程,构建出可以处理一万以上并发请求的极端高性能的 Web 应用。
OpenResty 致力于将你的服务器端应用完全运行于 Nginx 服务器中,充分利用 Nginx 的事件模型来进行非阻塞 I/O 通信。不仅仅是和 HTTP 客户端间的网络通信是非阻塞的,与MySQL、PostgreSQL、Memcached、以及 Redis 等众多远方后端之间的网络通信也是非阻塞的。
因为 OpenResty 软件包的维护者也是其中打包的许多 Nginx 模块的作者,所以 OpenResty 可以确保所包含的所有组件可以可靠地协同工作。
给几个链接地址了解下它的功能强大之处:
https://github.com/SinaMSRE/ABTestingGateway
https://www.gitbook.com/book/moonbingbing/openresty-best-practices/details
其实编译安装很简单,只要把OpenResty需要的依赖包安装好就可以。
linux系统centos服务器版本:安装依赖:
yum install readline-devel pcre-devel openssl-devel gcc
解压下载的压缩文件。
./configure
make
make install
mac系统下,我碰到的就是OpenSSL不太好装
不过还好,有人开发了homebrew包管理工具。http://brew.sh
请自行下载安装。
安装步骤:
brew update
brew install openssl
brew link --force openssl
看下版本:
openssl version -a
参考:http://apple.stackexchange.com/questions/126830/how-to-upgrade-openssl-in-os-x
mac系统下默认安装路径:/usr/local/openresty
为了方便配置和起停nginx,写了几个方便的脚本:
为了方便管理nginx的配置文件,把nginx的配置放到 ~/etc/nginx 目录:
在该目录下放的辅助启动停止脚本内容:
启动nginx脚本:
#! /bin/bash
/usr/local/openresty/nginx/sbin/nginx -p ~/etc/nginx -c ~/etc/nginx/nginx.conf
停止脚本:
#! /bin/bash
/usr/local/openresty/nginx/sbin/nginx -s quit -p ~/etc/nginx -c ~/etc/nginx/nginx.conf
重新加载配置:
#! /bin/bash
/usr/local/openresty/nginx/sbin/nginx -s reload -p ~/etc/nginx -c ~/etc/nginx/nginx.conf
~/etc/nginx/nginx.conf 配置文件做了一些改动:
#user nobody;
worker_processes 1;
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
pid logs/nginx.pid;
events {
worker_connections 1024;
}
http {
include lua.conf;
}
把配置挪到了lua脚本文件中:
内容:
server {
listen 8080;
server_name localhost;
location /lua {
default_type 'text/html';
content_by_lua 'ngx.say("hello doctor " )';
}
location /p {
rewrite_by_lua_file luascript/rout.lua;
}
}
测试下,运行脚本前请自动改动之行权限:
访问结果:
是不是可以运行了。