`

nginx 安装lua扩展

    博客分类:
  • lua
阅读更多

nginx的强大,lua的高性能,真是一个不错的组合,合到一起就无敌了,呵呵。

 

下面开始配置nginx,使其支持lua,是通过一个nginx模块实现的,

模块地址:https://github.com/chaoslawful/lua-nginx-module

下载链接:https://github.com/chaoslawful/lua-nginx-module/archive/v0.8.10.tar.gz

 

1、下载源码、解压缩

a、nginx源码:

1
2
[root@localhost ~]# wget http://nginx.org/download/nginx-1.4.2.tar.gz
[root@localhost ~]# tar zxvf nginx-1.4.2.tar.gz

b、lua模块

1
2
[root@localhost ~]# wget -O lua-nginx-module-0.8.10.tar.gz https://github.com/chaoslawful/lua-nginx-module/archive/v0.8.10.tar.gz
[root@localhost ~]# tar zxvf lua-nginx-module-0.8.10.tar.gz

c、luajit(lua即时编译器)

1
2
[root@localhost ~]# wget http://luajit.org/download/LuaJIT-2.0.2.tar.gz
[root@localhost ~]# tar zxvf LuaJIT-2.0.2.tar.gz

d、ngx_devel_kit(nginx开发工具包)

1
2
[root@localhost ~]# wget -O ngx_devel_kit-0.2.18.tar.gz https://github.com/simpl/ngx_devel_kit/archive/v0.2.18.tar.gz
[root@localhost ~]# tar zxvf ngx_devel_kit-0.2.18.tar.gz

e、echo-nginx(用户开发调试输出)

[root@localhost ~]# wget -O echo-nginx.zip https://github.com/openresty/echo-nginx-module/archive/v0.55.zip
[root@localhost ~]# unzip echo-nginx.zip

2、安装luajit

1
2
[root@localhost ~]# make
[root@localhost ~]# make install

 

3、安装nginx

方法a、使用luajit即时编译器

1
2
3
4
5
6
7
8
9
10
11
[root@localhost nginx-1.4.1]# export LUAJIT_LIB=/usr/local/lib
[root@localhost nginx-1.4.1]# export LUAJIT_INC=/usr/local/include/luajit-2.0
[root@localhost nginx-1.4.1]# ./configure \
--prefix=/usr/local/nginx-1.4.1 \
--with-http_stub_status_module \
--add-module=../lua-nginx-module-0.8.9 \
--add-module=../ngx_devel_kit-0.2.18
[root@localhost nginx-1.4.1]# make -j 4
[root@localhost nginx-1.4.1]# make install
[root@localhost ~]# echo '/usr/local/lib' >> /etc/ld.so.conf.d/lua.conf
[root@localhost ~]# ldconfig

方法b、使用lua编译器

注意:使用lua编译器的话,需要先安装lua执行环境,一般的系统都是预装好的,如果没有预装 好的话,可以用yum安装,如下:

1
[root@localhost ~]# yum install lua lua-devel

安装nginx:

1
2
3
4
5
6
7
8
9
[root@localhost nginx-1.4.1]# export LUA_LIB=/usr/lib64
[root@localhost nginx-1.4.1]# export LUA_INC=/usr/include
[root@localhost nginx-1.4.1]# ./configure \
--prefix=/usr/local/nginx-1.4.1 \
--with-http_stub_status_module \
--add-module=../lua-nginx-module-0.8.9 \
--add-module=../ngx_devel_kit-0.2.18
--add-module=../echo-nginx
[root@localhost nginx-1.4.1]# make -j 4
[root@localhost nginx-1.4.1]# make install

注意:让nginx支持lua,有两种方法,一是使用luajit即时编译器,二是使用lua编译器。推荐使用luajit,因为效率高。其中ngx_devel_kit的作用有2个,一是开发用的,二是可以在错误日志中记录nginx处理阶段信息(rewrite phase,access phase,content phase),需要将错误日志级别调高,调试时可以设置成debug。

 

4、验证安装

使用lua编译器时显示如下:

1
2
[root@localhost ~]# lsof -p 3359 | grep -i lua
nginx  3359 root  mem  REG 8,3  183920 394551 /usr/lib64/liblua-5.1.so

使用luajit即时编译器时显示如下:

1
2
[root@localhost ~]# lsof -p 13177 | grep -i lua
nginx 13177 root mem REG 8,3 452024 405089 /usr/local/lib/libluajit-5.1.so.2.0.2

 

5、验证配置指令和输出

修改nginx.conf配置文件,加入下面指令:

1
2
3
location / {
    content_by_lua 'ngx.say("hello world!")';
}

重启nginx,用curl测试

1
2
3
4
5
6
7
8
[root@localhost ~]# curl -i localhost
HTTP/1.1 200 OK
Server: nginx/1.4.1
Date: Tue, 24 Sep 2013 23:23:58 GMT
Content-Type: application/octet-stream
Transfer-Encoding: chunked
Connection: keep-alive
hello world!

 

 

转自:http://haoyun.blog.51cto.com/2038762/1301257

参考:http://blog.chinaunix.net/uid-26212859-id-3256667.html

分享到:
评论

相关推荐

    nginx+lua+docker+docker-compose实现简单服务分发

    nginx+lua+docker+docker-compose实现简单服务分发

    1 Nginx添加Lua扩展模块.docx

    Nginx 添加 Lua 扩展模块 Nginx 是一个流行的开源 Web 服务器软件, Lua 是一个轻量级的脚本语言,通过添加 Lua 扩展模块,可以实现动态配置和高性能的 Web 服务器。下面是 Nginx 添加 Lua 扩展模块的详细步骤和...

    nginx+lua+redis 集群 连接插件和脚本

    这样,我们就可以在不修改Nginx核心的情况下,通过Lua扩展Nginx的功能,使其具备更强大的业务处理能力。 Redis是一个开源的、基于键值对的数据结构存储系统,它支持多种数据结构,如字符串、哈希、列表、集合、有序...

    Nginx+lua通过url传参的方式实现动态代理

    ### Nginx+Lua通过URL传参方式实现动态代理 #### 概述 在现代Web应用开发中,灵活地管理后端服务之间的通信是至关重要的。动态代理技术为这一需求提供了解决方案,使得前端可以方便地根据业务逻辑将请求转发至不同...

    Nginx添加Lua扩展模块.rar

    本教程将详细介绍如何在Nginx中添加Lua扩展模块,以增强Nginx的功能。 首先,你需要了解Nginx的模块化架构。Nginx的核心是一个事件驱动的框架,通过加载不同的模块来处理各种任务,如静态文件服务、URL重写、反向...

    nginx+lua+redis实现token验证

    `lua`作为轻量级的脚本语言,可以增强`nginx`的功能,而`redis`则常用于高速缓存和分布式数据存储。本文将深入探讨如何利用`nginx+lua+redis`来实现`token`验证,以确保只有经过授权的用户才能访问受保护的资源。 ...

    nginx,lua模块安装

    7. **其他Lua扩展** 安装过程中可能会提示缺少luasql模块,可以在Open/Lib找到相应源码并进行安装。如果有其他依赖问题,例如ccmake未安装,可以通过`yum install`命令解决。 8. **Nginx与Lua的配合使用** 在...

    Nginx_Lua-FastDFS-master.zip

    FastDFS设计目标是纯C语言编写,易于安装部署,具有良好的可扩展性,适合中小型企业作为文件服务器使用。 Nginx_Lua则是Nginx与Lua脚本语言的结合,通过OpenResty等工具集,使得Nginx不仅可以处理静态资源,还可以...

    nginx+lua简要说明

    而目前市面上用的非常成熟的扩展是由章亦春将Lua和Nginx粘合的ngx_lua模块,并且将Nginx核心、LuaJIT、ngx_lua模块、许多有用的Lua库和常用的第三方Nginx模块组合在一起成为OpenResty,这样开发人员就可以安装...

    京东李开涛 跟我学Nginx+Lua 开发

    ### 京东李开涛 跟我学Nginx+Lua 开发 #### 知识点一:Nginx+Lua 在Web高并发中的实践应用 - **背景介绍**:随着互联网技术的发展与用户需求的增长,如何高效地处理高并发访问成为各大网站必须面对的问题之一。...

    idea openrestry+nginx+lua搭建企业级开发环境

    "Idea OpenResty + Nginx + Lua" 的组合提供了一种强大的解决方案,它允许开发者利用 IntelliJ IDEA(Idea)作为集成开发环境,OpenResty(一个扩展了 Nginx 的版本)作为服务器平台,以及 Lua 语言进行高性能的脚本...

    跟我学Nginx + Lua开发

    将Nginx与Lua结合,可以使Nginx不仅仅作为一个静态内容服务器,还可以执行动态内容的生成,大大扩展了Nginx的功能。 OpenResty是基于Nginx与LuaJIT的一个高性能Web平台,它以标准Nginx核心,集成了大量的精心设计的...

    nginx lua插件对skywalking支持用户手册(1).docx

    安装 Nginx Lua 插件并配置 SkyWalking 需要以下步骤: 1. **下载插件**:获取 `nginx-skywalking-plugin-{Version}.zip` 文件,并将其上传到 `/cib/jup/install` 目录。 2. **解压和安装**:使用 `cib` 用户身份,...

    Nginx+upload+lua实现简单文件上传服务

    安装OpenResty,并在Nginx配置中启用lua模块。 4. **编写lua脚本** 创建一个处理文件上传的lua脚本,例如`upload_handler.lua`,这个脚本会接收Nginx传递的文件信息,并进行处理,如保存文件、验证文件大小和类型...

    nginx实战-基于lua语言

    结合Lua语言,Nginx可以进一步提升其灵活性和功能扩展性,实现更复杂的业务逻辑。以下是对Nginx与Lua结合使用的深入解析。 ### 一、Nginx与Lua的结合 1. **Nginx模块 ngx_lua**:Nginx与Lua的桥梁是ngx_lua模块,...

    nginx-lua-prometheus-master.zip

    标题 "nginx-lua-prometheus-master.zip" 暗示了一个包含使用 Lua 脚本扩展的 Nginx 配置,以及与 Prometheus 监控集成的项目。Prometheus 是一个流行的开源监控和警报工具,而 Nginx-Lua 模块则允许在 Nginx 中运行...

    nginx-lua安装教程

    本文将详细介绍如何安装Nginx及其Lua扩展模块。 #### 二、安装步骤详解 ##### 2.1 安装Nginx 1. **下载最新稳定版本** 访问[Nginx官方下载页面](http://nginx.org/en/download.html),下载最新的稳定版Nginx...

    nginx-lua-counter.zip

    Nginx与Lua结合,通过Nginx的HttpLuaModule模块,可以实现在Nginx内部执行Lua脚本,扩展Nginx的功能,例如动态配置、流量控制、日志处理和自定义业务逻辑等。 描述中提到的链接指向了一篇CSDN博客文章,详细介绍了...

    第一章 安装OpenResty(Nginx+Lua)开发环境

    OpenResty的开发不仅仅是安装这么简单,它还包括对Nginx配置的理解和Lua编程。例如,Lua的 ngx_lua 模块提供了一系列API,如 ngx.say() 用于输出内容,ngx.req.get_uri_args() 用于获取请求参数。通过这些API,你...

    nginx-lua-prometheus.tgz

    本文将深入探讨如何利用Nginx的Lua扩展模块与Prometheus的强大监控系统进行整合,实现对Nginx服务器的高效监控。我们将围绕"nginx-lua-prometheus.tgz"这个压缩包文件,揭示其中包含的知识点,以及如何将这些工具...

Global site tag (gtag.js) - Google Analytics