lua项目模块化编程(一)
一,工程模块化
在上一章节HelloWorld脚本中,我们是将lua脚本代码直接放在项目配置lua.conf文件中的,当项目代码量比较大时,会显得整个代码结构特别凌乱,没有模块化。导致代码不易阅读和管理。所以一般在项目开发中,是将lua脚本代码单独剥离存放的。
下面介绍OpenResty模块化编程(OpenResty安装目录:/usr/local/):
#在/usr/local/nginx/下建立项目部署目录webapps
cd /usr/local/nginx/
mkdir webapps
#在webapps目录下新建项目名称example
cd /usr/local/nginx/webapps/
mkdir example
#新建项目配置文件example.conf
cd /usr/local/nginx/webapps/example
touch example.conf
#新建脚本存放目录lua
cd /usr/local/nginx/webapps/example
mkdir lua
#新建lua依赖库及第三方依赖目录
cd /usr/local/nginx/webapps/example
mkdir lualib
ps : 其中我们把lualib也放到项目中的好处就是以后部署的时候可以一起部署,防止有的服务器忘记复制依赖而造成缺少依赖的情况。
二,lua_code_cache作用
默认情况下lua_code_cache 是开启的,即缓存lua代码,每次lua代码变更必须reload nginx才生效,如果在开发阶段可以通过lua_code_cache off;来关闭缓存,这样调试时每次修改lua代码不需要reload nginx;但是正式环境一定记得开启缓存,以提升程序运行效率。
#example.conf配置
server {
listen 802;
server_name example-lua;
location /example {
default_type 'text/html';
lua_code_cache off;
content_by_lua_file webapps/example/lua/test.lua;//相对路径,也可以使用绝对路径
}
}
text.lua代码:
#hello world脚本代码
ngx.say("hello world");
ps: 相对路径是相对于nginx安装目录/usr/local/nginx/而言的。当然也可以写成绝对路径/usr/local/nginx/webapps/example/lua/test.lua
三,全局nginx.conf配置
修改全局/usr/local/nginx/conf/nginx.conf配置文件。
#修改/usr/local/nginx/conf/nginx.conf中的http部分
http {
include mime.types;
default_type application/octet-stream;
#example工程配置
lua_package_path "/usr/local/nginx/webapps/example/lualib/?.lua;;";
lua_package_cpath "/usr/local/nginx/webapps/example/lualib/?.so;;";
include /usr/local/nginx/webapps/example/example.conf;
#其他配置
..............
}
重启nginx:/usr/local/nginx/sbin/nginx -s reload
四,程序错误日志
如果运行过程中出现错误,请不要忘记查看错误日志。
tail -f /usr/local/nginx/logs/error.log
上一篇: 简单的封装axios
下一篇: 模块化编程
推荐阅读