一,工程模块化
在上一章节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
相关推荐
xmake是一个开源、轻量级且高效的构建工具,使用Lua脚本语言进行项目配置。它旨在简化构建过程,支持跨平台构建、自动依赖管理和并行编译。...模块化设计:支持模块化配置,便于管理大型项目和代码复用。
typedlua, 一种可选的Lua类型系统 类型的Lua 注意:请注意,键入的Lua没有被积极维护,因为我们现在正在使用Titan编程语言 。 类型化Lua是编译成纯Lua的Lua类型的超集。 它通过定义类。接口和模块来提供可选的类型...
从Lua 5.1开始,我们可以使用require和module函数来获取和创建Lua中的模块。从使用者的角度来看,一个模块就是一个程序库,可以通过require来加载,之后便得到一个类型为table的全局变量。
年在巴西里约热内卢天主教大学(Pontifical Catholic University of Rio de Janeiro in Brazil)诞生了一门编程语言,发明者是该校的三位研究人员,他们给这门语言取了个浪漫的名字——Lua,在葡萄牙语里代表美丽的...
LuaStudio是一款快速的、轻量级的、可扩展的lua脚本编辑器软件。软件最大特点就是可以注入到宿主程序内对lua脚本进行调试,还可以设置断点观察变量的值,此外,软件还具有编辑、工程管理、调试、远程调试、等各种...
LuaBind 是一个帮助你绑定C++和Lua的库.她有能力暴露 C++ 函数和类到 Lua . 她也有 能力支持函数式的定义一个Lua类,而且使之继承自C++或者Lua. Lua类可以覆写从 C++ 基类 继承来的虚函数. 她的目标平台是Lua 5.0 ,不...
许多可用的编程语言:Python、Lisp、Java(音素)、TCL、Ruby、Lua 基于 Dropbear 项目的 SSHD Mesa3d Quake3 zeromq, qpid 主要特征 符合 POSIX 标准 C++ 支持 文件系统:FAT、ext2/3/4、... TCP/IP:BSD 套接字;...
使用“ Torch”和其他有用的库学习在Lua中编程 是LuaJIT的科学计算框架。 为什么要学习火炬? 带有ML,CV等由社区驱动的大型软件包生态系统 易于使用和高效 可以构建神经网络的任意图,并以有效的方式在CPU和GPU...
这使得Java编写的代码更加模块化、可维护和可扩展。 多线程支持: Java内置了对多线程的支持,允许程序同时执行多个任务。这对于开发需要高并发性能的应用程序(如服务器端应用、网络应用等)非常重要。 自动内存...
提供游戏对象预加载、加载及卸载精确控制模型,帮助你模块化管理游戏对象的生命周期以优化内存使用。 提供部分游戏自动化工具,主要运用于原始资源到游戏资源的转化、打包游戏资源、安装游戏资源、上传游戏资源到...
这使得Java编写的代码更加模块化、可维护和可扩展。 多线程支持: Java内置了对多线程的支持,允许程序同时执行多个任务。这对于开发需要高并发性能的应用程序(如服务器端应用、网络应用等)非常重要。 自动内存...
三级考试分为理论考试和实操考试,理论考试中有关模块化编程的考题,统一采用 Mixly图形化软件编写。在实操考试中,编程软件不做具体要求,以完成实操考题所要求的电路搭设及功能为准。 Q:四~六级考试的编程语言是...
Embox Embox是为资源受限和嵌入式系统设计的可配置RTOS。 Embox的主要思想是在没有Linux的... 流行的编程语言:java,python,lua,tcl,lisp,ruby 联络人 邮件列表: 主要(英文): 俄语: 电报聊天: 主要
它提供: 面向对象编程的经典模型一个用于创建/初始化/销毁 Lua 对象的简单结构类 getter 和 setter 多重继承支持混合增强对 super 的方法访问类似于 Corona 显示对象的对象 API 通过结构和优化快速执行尽管它不仅...
在首页顶部的位置有个欢迎用户功能,此模块会根据用户登录的时间,人性化的对用户进行打招呼,比如用户深夜的时候登陆系统,该提示语会提醒“已经深夜了,你还在加班吗,请注意休息!”。当用户点击我的网盘模块后,...
<br>她有着类似C语言一样的外观 ,吸取各种语言的精华,让代码易读易写,函数式编程让你可以回味结构化编程语言的简洁。 她又有像VB一样易读懂的代码风格,对初学者也不难为. 她可以跨平台使用(易语言...
业余时,作为一个编程语言爱好者,对D、Kotlin、Lua、Clojure、Scala、Julia、Go等语言均有了解,但至今仍为Python独特的风格、简洁的设计而惊叹。 目录 · · · · · · 第1章 程序之道 1 1.1 什么是程序 1 ...
什么是Cubix?... 在那个展览中,“ Cubix”是由模块化零件组成的机器人,可以将其重组用于多种用途。 目前,它支持C,Java,JavaScript,Lua和Python。 OOPSLA 2018论文描述了Cubix系统本身以及通用的增量
作者介绍刘剑卓 有点文艺的IT男,会做美食的运动男,喜欢电影的80后。拥有八年的游 戏开发经验,精通移动平台...15.4.4 脚本化编程 399 15.4.5 可视化的操作界面 400 15.5 会不会有Cocos3D? 401 15.6 本章小结 403