Nginx 安装 Lua 支持

Posted 运维派

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Nginx 安装 Lua 支持相关的知识,希望对你有一定的参考价值。

nginx 支持 Lua 需要安装 lua-nginx-module 模块,一般常用有 2 种方法:

1.编译 Nginx 的时候带上 lua-nginx-module 模块一起编译2.使用 OpenResty: Nginx + 一些模块,默认启用了 Lua 支持(推荐使用此方式)

OpenResty介绍

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 的安装很方便,Mac 里使用 brew 安装,对于一些常见的 Linux 发行版本,OpenResty® 提供 官方预编译包,CentOS 使用 yum,Ubuntu 使用 apt-get,具体请参考 https://openresty.org/cn/installation.html,以下以 Mac 和 CentOS 7 中安装 OpenResty 为例。

CentOS7使用OpenResty

终端执行下面 3 条命令把 OpenResty 安装到 /usr/local/openresty

                sudo yum install yum-utilssudo yum-config-manager --add-repo https://openresty.org/package/centos/openresty.reposudo yum install openresty            

Nginx 的配置文件位于 /usr/local/openresty/nginx/conf/nginx.conf (openresty -V 中没有指定) 启动 Nginx,2 种启动方式都可以

                sudo openrestysudo nginx查看是否启动了 nginx: ps -ef | grep nginx            

编译 Nginx + Lua

编译 Nginx 需要先准备好下面的这些工具,如果不确定是否已安装,可以在编译的时候根据出现的错误提示再进行安装

                yum install -y gcc g++ gcc-c++yum -y install zlib zlib-devel openssl openssl--devel pcre pcre-devel            

Nginx 支持 Lua 需要依赖 LuaJIT-2.0.4.tar.gz,ngx_devel_kit,lua-nginx-module,下面介绍具体的编译过程 (都下载到 /root 目录)

1.下载安装 LuaJIT-2.0.4.tar.gz

                wget -c http://luajit.org/download/LuaJIT-2.0.4.tar.gztar xzvf LuaJIT-2.0.4.tar.gzcd LuaJIT-2.0.4make install PREFIX=/usr/local/luajit
# 添加环境变量export LUAJIT_LIB=/usr/local/luajit/libexport LUAJIT_INC=/usr/local/luajit/include/luajit-2.0

2.下载解压 ngx_devel_kit

                wget https://github.com/simpl/ngx_devel_kit/archive/v0.3.0.tar.gztar -xzvf v0.3.0.tar.gz            

3.下载解压 lua-nginx-module

                wget https://github.com/openresty/lua-nginx-module/archive/v0.10.8.tar.gztar -xzvf v0.10.8.tar.gz            

4.下载安装 nginx-1.10.3.tar.gz

                wget http://nginx.org/download/nginx-1.10.3.tar.gztar -xzvf nginx-1.10.3.tar.gzcd nginx-1.10.3
# 注意ngx_devel_kit和lua-nginx-module 以实际解压路径为准./configure --add-module=/root/ngx_devel_kit-0.3.0 --add-module=/root/lua-nginx-module-0.10.8
make -j2make install

5.支持 Nginx 被安装到了 /usr/local/nginx,配置文件为 /usr/local/nginx/conf/nginx.conf

6.验证

将 nginx 做成命令: ln -s /usr/local/nginx/sbin/nginx /usr/bin/nginx/usr/local/nginx/conf/nginx.conf 中添加 Lua 测试代码

                location /lua { default_type 'text/html'; content_by_lua 'ngx.say("hello world");';}            

启动 Nginx: sudo nginx curl http://localhost/lua 输出 hello world 则说明 Nginx 支持 Lua

Nginx 安装 Lua 支持


以上是关于Nginx 安装 Lua 支持的主要内容,如果未能解决你的问题,请参考以下文章

Nginx安装lua支持

安装nginx+ngx_lua支持WAF防护功能

ini IVZ:Nginx配置使用Lua作为身份验证模块。您必须使用lua支持安装nginx。请参阅Linux发行版的“openresty”或

nginx+ngx_lua支持WAF防护功能

Lua:Nginx Lua环境配置,第一个Nginx Lua代码

Nginx框架之Lua拓展