OpenResty 源码可以在官网下载:
https://www.openresty.org
也可以下载已经编译好的二进制版本。
安装
这里记录在 CentOS 中的安装
首先添加 openresty
yum 仓库:
# add the yum repo:
$ wget https://openresty.org/package/centos/openresty.repo
$ sudo mv openresty.repo /etc/yum.repos.d/
# update the yum index:
$ sudo yum check-update
$ sudo yum install openresty
$ sudo yum install openresty-resty
$ sudo yum install openresty-opm
默认情况下,将会安装在 : /usr/local/openresty/
目录中。
bin
目录中包括以下常见命令:
openresty
: 启动 OpenResty 服务 (我觉得它就是 nginx)opm
: 组件管理工具,用来只能装各种功能组件resty
: 命令行工具,可以直接执行 Lua 程序。restydoc
: 参考手册。
lualib
目录中存放着 OpenResty 自带的 Lua 组件,例如 lua_cjson
, lua_core
等。
在 CentOS 7 中,默认安装了名为 openresty 的系统服务:
$ sudo systemctl start openresty
$ sudo systemctl status openresty
● openresty.service - The OpenResty Application Platform
Loaded: loaded (/usr/lib/systemd/system/openresty.service; disabled; vendor preset: disabled)
Active: active (running) since Tue 2020-06-30 19:39:01 CST; 4min 6s ago
Process: 21231 ExecStart=/usr/local/openresty/nginx/sbin/nginx (code=exited, status=0/SUCCESS)
Process: 21229 ExecStartPre=/usr/local/openresty/nginx/sbin/nginx -t (code=exited, status=0/SUCCESS)
Main PID: 21234 (nginx)
CGroup: /system.slice/openresty.service
├─21234 nginx: master process /usr/local/openresty/nginx/sbin/ngin...
└─21235 nginx: worker process
Jun 30 19:39:01 web1.chaos.luxe systemd[1]: Starting The OpenResty Applicati....
Jun 30 19:39:01 web1.chaos.luxe nginx[21229]: nginx: the configuration file ...k
Jun 30 19:39:01 web1.chaos.luxe nginx[21229]: nginx: configuration file /usr...l
Jun 30 19:39:01 web1.chaos.luxe systemd[1]: Started The OpenResty Applicatio....
Hint: Some lines were ellipsized, use -l to show in full.
Further
使用 resty 执行
在命令行中执行
$ resty -e 'print("Hello OpenResty")'
使用脚本执行
$ cat hello.resty
#!/usr/bin/env resty
# use resty
print("hello openresty")
$ ./hello.resty
脚本文件支持传递命令行参数,参数存储在表
arg
中,使用arg[N]
的方式可以访问参数:
$cat args.resty
#!/usr/bin/env resty
-- 得到参数的数量
local n = #arg
print("args count is ", n)
for i = 1, n do
print("arg ", i, ":", arg[i])
end
$
$ ./args.resty a b c 1 3 5
args count is 6
arg 1:a
arg 2:b
arg 3:c
arg 4:1
arg 5:3
arg 6:5
使用 restydoc
OpenResty 附带了非常完善的用户参考手册 restydoc, 功能类似 man。例如:
$ restydoc nginx
$ restydoc luajit
$ restydoc opm
$ restydoc -s proxy_pass
其中 -s
参数用来指定搜索手册里的小结名。
对于使用 opm 安装的组件,需要使用 -r
参数指定安装目录,例如:
$ restydoc -r /usr/local/openresty/site -s lua-resty-http
EOF
Power by TeXt.