# Nginx\_Lua的安装及环境
# Nginx\_Lua 介绍
ngx\_lua – 把lua语言嵌入nginx中,使其支持lua来快速开发基于nginx下的业务逻辑
该模块不在nginx源码包中,需自行下载编译安装。使用lua 5.1(目前不支持lua 5.2) 或 luajit 2.0 。
添加lua支持后,开发复杂的模块,周期快,依然是100%异步非阻塞。
ngx\_lua 哪些人在用:
淘宝、腾讯财经、网易财经、360、去哪儿网等
CloudFlare, CNN, Wingify, Reblaze, Turner, Broadcasting System
lua-nginx-module 主要官方代码在 :
[https://github.com/openresty/lua-nginx-module](https://github.com/openresty/lua-nginx-module)
## 1 安装LuaJit
```
wget -c http://luajit.org/download/LuaJIT-2.0.2.tar.gz
```
```bash
tar xzvf LuaJIT-2.0.2.tar.gz
cd LuaJIT-2.0.2
make install PREFIX=/usr/local/luajit
echo "/usr/local/luajit/lib" > /etc/ld.so.conf.d/usr_local_luajit_lib.conf
#配置环境变量
export LUAJIT_LIB=/usr/local/luajit/lib
export LUAJIT_INC=/usr/local/luajit/include/luajit-2.0
```
## 2 安装ngx\_devel\_kit 和 lua-nginx-module
> ngx-devel-kit下载地址
[https://github.com/simpl/ngx\_devel\_kit/](https://github.com/simpl/ngx_devel_kit/)
> lua-nginx-module下载地址
[https://github.com/chaoslawful/lua-nginx-module/](https://github.com/chaoslawful/lua-nginx-module/)
```
tar -zxvf ngx_devel_kit-0.3.0.tar.gz
```
得到 ngx-devel-kit路径
**/home/itcast/Project-Packages/ngx\_devel\_kit-0.3.0**
`tar -zxvf lua-nginx-module-0.10.8.tar.gz`
得到 lua-nginx-module路径
**/home/itcast/Project-Packages/lua-nginx-module-0.10.8**
## 3 安装nginx
```bash
wget 'http://nginx.org/download/nginx-1.11.2.tar.gz'
tar -xzvf nginx-1.11.2.tar.gz
cd nginx-1.11.2/
./configure \
--add-module=/home/itcast/Project-Packages/ngx_devel_kit-0.3.0 \
--add-module=/home/itcast/Project-Packages/lua-nginx-module-0.10.8
make
sudo make install
```
## 4 配置第一个ngx\_lua程序
### 4.1 ngx执行lua脚本文件
\(1\) 打开/usr/local/nginx/conf/nginx.conf配置文件
在server{}中加上如下配置:
```nginx
location /lua_test1 {
#执行 文本 lua 脚本
content_by_lua_file conf/lua/hello.lua;
}
```
其中hello.lua代码如下:
```lua
ngx.say("HELLO LUA!!")
```
\(2\) 重启nginx服务器
```bash
sudo /usr/local/nginx/sbin/nginx -s reload
```
\(3\)客户端访问
浏览器输入 [http://192.168.2.113/lua\_test1](http://192.168.2.113/lua_test1)
### 4.2 ngx执行lua脚本内嵌代码块
\(1\) 打开/usr/local/nginx/conf/nginx.conf配置文件
在server{}中加上如下配置:
```lua
location /lua_test2 {
#执行内嵌 lua脚本
content_by_lua '
-- 设置返回的content_type头
ngx.header.content_type = "text/plain";
-- 回复客户端请求数据
ngx.say("Hello World ngx_lua")
-- 记录nginx日志
ngx.log(ngx.ERR, "ngx lua ERR ERR ERR!!!!")
ngx.log(ngx.NOTICE, "ngx lua NOTICE NOTICE NOTICE!!")
ngx.log(ngx.INFO, "ngx lua INFO INFO INFO!!")
';
}
```
\(2\) 重启nginx服务器
```bash
sudo /usr/local/nginx/sbin/nginx -s reload
```
\(3\)客户端访问
浏览器输入 [http://192.168.2.113/lua\_test](http://192.168.2.113/lua_test1)2
###
- 1 Lua介绍及环境
- 2 基本语法
- 3 数据类型
- 4 Lua 变量
- 5 循环
- 6 流程控制
- 7 函数
- 8 运算符
- 9 字符串
- 10 数组
- 11 迭代器
- 12 table
- 13 Lua 模块与包
- 14 Lua 元表(Metatable)
- 14.1 元表案例
- 15 Lua 协同程序(coroutine)
- 16 Lua 文件IO
- 17 Lua 面向对象
- 17.1 类
- 17.2 继承
- 17.3 封装
- 18 Lua 与 Mysql
- 19 Lua 与 redis
- 20 Lua 与 JSON
- 21 Lua 与 http
- 22 Lua 与 Nginx
- 22.1 Nginx_Lua的安装及环境
- 22.2 ngx_lua API(全表)
- 22.3 常用命令介绍
- 22 Lua 人工智能
- (1) Torch的安装
- (2)Tensor
- Lua与C混合编程