Nginx+Lua+OpenResty开发环境安装配置全程实例(2)

7、启动nginx
root@user:/usr/servers# /usr/servers/nginx/sbin/nginx
检测配置是否正确(需要先切换到root用户):
root@user:/usr/servers# /usr/servers/nginx/sbin/nginx -t
重启nginx:
root@user:/usr/servers# /usr/servers/nginx/sbin/nginx -s reload

--------------------------------------
二、配置nginx+lua开发环境
配置及Nginx HttpLuaModule文档在可以查看

1、为了方便开发我们在/usr/servers/nginx/conf目录下创建一个lua.conf
root@user:/home/user# cd /usr/servers/nginx/conf
root@user:/usr/servers/nginx/conf# vim lua.conf
server {
listen 80;
server_name _;
#HelloWorld
location /lua {
default_type 'text/html';
content_by_lua 'ngx.say("hello world")';
}
}

2、编辑nginx.conf配置文件
vim /usr/servers/nginx/conf/nginx.conf
在http部分添加如下配置
lua_package_path "/usr/servers/lualib/?.lua;;"; #lua 模块
lua_package_cpath "/usr/servers/lualib/?.so;;"; #c模块
include lua.conf; #单独lua配置

#lua模块路径,多个之间”;”分隔,其中”;;”表示默认搜索路径,默认到/usr/servers/nginx下找
例如:
http {
include mime.types;
default_type application/octet-stream;
//.....
lua_package_path "/usr/servers/lualib/?.lua;;";
lua_package_cpath "/usr/servers/lualib/?.so;;";
include lua.conf;
}

3、测试是否正常
root@user:/usr/servers/nginx/conf# /usr/servers/nginx/sbin/nginx -t
如果显示如下内容说明配置成功
nginx: the configuration file /usr/servers/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/servers/nginx/conf/nginx.conf test is successful

4、重启nginx
/usr/servers/nginx/sbin/nginx -s reload

5、访问如(自己的机器根据实际情况换ip),可以看到如下内容
hello world
说明配置成功。

--------------------------------------
三、lua代码文件和缓存
1、lua_code_cache
默认情况下lua_code_cache 是开启的,即缓存lua代码,即每次lua代码变更必须reload nginx才生效,
如果在开发阶段可以通过lua_code_cache off;关闭缓存,这样调试时每次修改lua代码不需要reload nginx;但是正式环境一定记得开启缓存。

2、lua代码文件
我们把lua代码放在nginx配置中会随着lua的代码的增加导致配置文件太长不好维护,因此我们应该把lua代码移到外部文件中存储。
root@user:/home/user# cd /usr/servers/
root@user:/usr/servers# mkdir lua
root@user:/usr/servers# cd lua
root@user:/usr/servers# vim test.lua
#添加如下内容
ngx.say("hello world by lua!");

然后lua.conf修改为:
location /lua {
default_type 'text/html';
lua_code_cache off;
content_by_lua_file /usr/servers/lua/test.lua;
}

3、重启nginx
/usr/servers/nginx/sbin/nginx -s reload
关闭缓存后会看到如下报警(忽略不管)
nginx: [alert] lua_code_cache is off; this will hurt performance in /usr/servers/nginx/conf/lua.conf:7

4、再次访问如(自己的机器根据实际情况换ip),可以看到如下内容:
hello world by lua!

5、错误日志
如果运行过程中出现错误,请不要忘记查看错误日志。
tail -f /usr/servers/nginx/logs/error.log

到此nginx+lua基本环境搭建完毕。

--------------------------------------
四、nginx+lua项目构建

把nginx lua开发文件其项目化方便开发。项目目录结构如下所示:
servers
lua.conf ---该项目的nginx 配置文件
lua ---我们自己的lua代码
test.lua
lualib ---lua依赖库/第三方依赖
*.lua
*.so
其中把lualib放到项目中以后可以一起部署,防止有的服务器忘记复制依赖而造成缺少依赖的情况。

将项目放到/usr/servers/目录下。
/usr/servers/nginx/conf/nginx.conf配置文件如下(此处我们最小化了配置文件)
#user nobody;
worker_processes 2;
error_log logs/error.log;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type text/html;

#lua模块路径,其中”;;”表示默认搜索路径,默认到/usr/servers/nginx下找
lua_package_path "/usr/servers/lualib/?.lua;;"; #lua 模块
lua_package_cpath "/usr/servers/lualib/?.so;;"; #c模块
include /usr/servers/lua.conf;
}
通过绝对路径包含我们的lua依赖库和nginx项目配置文件。

/usr/servers/lua.conf配置文件如下(可以直接把上面配置的文件移动过来,root@user:/usr/servers/nginx/conf# mv lua.conf /usr/servers/)
server {
listen 80;
server_name _;

location /lua {
default_type 'text/html';
lua_code_cache off;
content_by_lua_file /usr/servers/lua/test.lua;
}
}
lua文件我们使用绝对路径/usr/servers/lua/test.lua。

Lua 语言 15 分钟快速入门

Lua程序设计(第2版)中文 PDF

Lua程序设计(第二版)阅读笔记

NetBSD 将支持用 Lua 脚本开发内核组件

CentOS 编译安装 Lua LuaSocket

Programming In Lua 高清PDF中文版 

如何配置一套优雅的Lua开发环境 

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/8f6585a696239260e8ca6ce0549065a4.html