OpenResty是什么?
OpenResty 是一个基于 Nginx 与 Lua 的高性能 Web 平台,什么意思呢?首先OpenResty 是基于Nginx的,也就是内置了一个Nginx,你不用单独部署Nginx,其次OpenResty 可以让开发人员使用Lua脚本在Nginx上做开发,不用你做任何额外的配置。
OpenResty 能干什么?
请求分发、高级缓存机制、直连MySQL、直连Redis、直连消息队列等等。
OpenResty 的安装
操作系统版本:Ubuntu18.0.4 64bit
OpenResty 版本:OpenResty 1.15.8.3
以下操作请确保具有root权限
安装依赖
apt-get install libpcre3-dev libssl-dev perl make build-essential curl zlib1g-dev
下载安装包
wget https://openresty.org/download/openresty-1.15.8.3.tar.gz
解压安装包至任意目录
tar -xzvf openresty-1.15.8.3.tar.gz
进入到解压目录根目录
cd openresty-1.15.8.3/
生成Makefile,--prefix指定安装目录(默认安装到/usr/local/openresty目录)
./configure --prefix=/usr/openresty
编译安装(-j8 表示使用8个核心并行编译)
make -j8 && make install
进入到安装目录下
cd /usr/openresty/
主要目录:luajit lualib nginx
luajit:lua解释器
lualib:集成的lua库
nginx :集成的nginx目录
Hello World
进入openresty集成的nginx目录下,编辑nginx.conf文件
cd /usr/openresty/nginx/
vim conf/nginx.conf
http {
include mime.types;
default_type application/octet-stream;
# 设置纯 Lua 扩展库的搜寻路径(';;' 是默认路径)
lua_package_path "/usr/openresty/lualib/?.lua;;";
# 设置 C 编写的 Lua 扩展模块的搜寻路径(也可以用 ';;')
lua_package_cpath "/usr/openresty/lualib/?.so;;";
...
server {
listen 80;
server_name localhost;
location /hello {
default_type "text/html";
lua_code_cache off; # 关闭lua代码缓存,生产环境打开
# content_by_lua是说我这是一条lua语句
# 你想写多条lua语句,就用content_by_lua_block {}
# 你想把lua脚本写到另一个文件,就用content_by_lua_file filePath
content_by_lua 'ngx.say("hello world!")';
}
...
}
}
启动nginx
sbin/nginx