Nginx 支持 Lua 需要安装 lua-nginx-module 模块,一般常用有 2 种方法:
编译 Nginx 的时候带上 lua-nginx-module 模块一起编译
使用 OpenResty: Nginx + 一些模块,默认启用了 Lua 支持(推荐使用此方式)
OpenResty is just an enhanced version of Nginx by means of addon modules anyway. You can take advantage of all the exisitng goodies in the Nginx world.
OpenResty® 是一个基于 Nginx 与 Lua 的高性能 Web 平台,其内部集成了大量精良的 Lua 库、第三方模块以及大多数的依赖项。用于方便地搭建能够处理超高并发、扩展性极高的动态 Web 应用、Web 服务和动态网关。
OpenResty® 通过汇聚各种设计精良的 Nginx 模块(主要由 OpenResty 团队自主开发),从而将 Nginx 有效地变成一个强大的通用 Web 应用平台。这样,Web 开发人员和系统工程师可以使用 Lua 脚本语言调动 Nginx 支持的各种 C 以及 Lua 模块,快速构造出足以胜任 10K 乃至 1000K 以上单机并发连接的高性能 Web 应用系统。
OpenResty® 的目标是让你的Web服务直接跑在 Nginx 服务内部,充分利用 Nginx 的非阻塞 I/O 模型,不仅仅对 HTTP 客户端请求,甚至于对远程后端诸如 MySQL、PostgreSQL、Memcached 以及 Redis 等都进行一致的高性能响应。
OpenResty
OpenResty 的安装很方便,对于一些常见的 Linux 发行版本,OpenResty® 提供 官方预编译包,CentOS 使用 yum,Ubuntu 使用 apt-get,具体请参考 https://openresty.org/cn/installation.html%EF%BC%8C%E4%BB%A5%E4%B8%8B%E4%BB%A5CentOS 7 中安装 OpenResty 为例。
CentOS 7 使用 OpenResty
终端执行下面 3 条命令把 OpenResty 安装到 /usr/local/openresty
1 2 3 4 5 |
|
Nginx 的配置文件位于 /usr/local/openresty/nginx/conf/nginx.conf (openresty -V 中没有指定)
验证
/usr/local/nginx/conf/nginx.conf 中添加 Lua 测试代码
1 2 3 4 |
|
启动 openresty
1
|
|
curl http://localhost/lua 输出 hello world 则说明 Nginx 支持 Lua
help
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
|
编译 Nginx + Lua
编译 Nginx 需要先准备好下面的这些工具,如果不确定是否已安装,可以在编译的时候根据出现的错误提示再进行安装
1 2 |
|
Nginx 支持 Lua 需要依赖 LuaJIT-2.0.4.tar.gz,ngx_devel_kit,lua-nginx-module,下面介绍具体的编译过程 (都下载到 /root 目录)
下载安装 LuaJIT-2.0.4.tar.gz
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
|
支持 Nginx 被安装到了 /usr/local/nginx,配置文件为 /usr/local/nginx/conf/nginx.conf
验证
将 nginx 做成命令: ln -s /usr/local/nginx/sbin/nginx /usr/bin/nginx
/usr/local/nginx/conf/nginx.conf 中添加 Lua 测试代码
1 2 3 4 |
|
启动 openresty
1
|
|
curl http://localhost/lua 输出 hello world 则说明 Nginx 支持 Lua
上面编译 Nginx 的内容来源于 http://www.cnblogs.com/aoeiuv/p/6856056.html%EF%BC%8C%E7%BC%96%E8%AF%91 Nginx 相对使用 OpenResty 麻烦一些,不过也不难,根据自己的喜好选择即可。