`

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

 

  • 大小: 12.8 KB
分享到:
评论

相关推荐

    Lua 编程指南-Lua 编程入门教程

    - **高级特性**:进一步学习Lua的高级特性,如函数、模块、面向对象编程等。 - **实践项目**:通过实际项目来加深对Lua的理解和运用能力,可以尝试使用Lua来编写简单的游戏或工具。 - **社区资源**:积极参与Lua社区...

    LUA 编程指南中文版

    - **C与Lua的交互**:深入了解如何使用C语言编写Lua模块,以及如何从Lua脚本中调用C函数。 - **错误处理与调试**:学习Lua中的错误处理机制,掌握调试技巧。 - **性能优化**:探索提高Lua程序执行效率的方法和技术。...

    LUA编程programminginlua.rar

    书中详细阐述了函数的定义、调用和闭包,还涵盖了模块化编程,这对于大型项目来说尤其重要。此外,元表和元方法的概念是LUA的一个独特之处,它们允许用户自定义对象的行为,这是LUA实现面向对象编程的方式之一。 ...

    LUA编程高清版

    - **模块化**:LUA支持将代码组织成模块,便于复用和维护。 ### 5. LUA与其他编程语言的比较 - **与C/C++相比**:LUA的语法更简洁,易于学习,但C/C++提供了更底层的控制能力。 - **与Java相比**:Java有更强的...

    Lua 编程语言 中文教程

    通过“Programming_In_Lua.pdf”这份教程,你可以深入了解Lua的基础语法、控制结构、表的高级用法、模块化编程、错误处理、C接口的使用,以及如何在实际项目中应用Lua进行游戏开发。这份教程将帮助你从零开始,逐步...

    Lua经典编程书籍三本

    这本书会教你如何编写简洁而高效的Lua代码,同时也会涉及到错误处理、模块化编程以及与其他语言的交互等内容。通过阅读此书,你可以建立起对Lua语言的扎实基础。 《Lua程序设计_第二版_中文》是进阶学习的必备书籍...

    云风-lua源码欣赏-lua-5.21

    通过了解源文件划分,读者可以更好地理解Lua的模块化设计,而代码风格部分则有助于我们了解Lua编程的一致性和规范性。 接下来,书中讨论了Lua的虚拟机(VM)实现,包括字节码的翻译和预编译过程。这部分内容对于...

    programming in lua_lua_

    4. **模块化编程**:通过require和package系统,Lua支持模块化编程,便于代码组织和重用。 5. **面向对象编程**:Lua不直接支持类和对象,但可以通过元表和 Prototypes 实现面向对象编程风格,模拟类和继承。 6. *...

    LUA编程(programming in lua).pdf

    通过阅读《LUA编程(programming in lua).pdf》,开发者不仅能了解LUA的基本语法,还能掌握高级特性,如元编程、模块化和协程,从而能够高效地利用LUA进行各种软件开发。同时,书中还可能涵盖了实际应用示例、最佳...

    Lua实例代码大全_编程实例

    这个压缩包“Lua实例代码大全_编程实例”显然包含了与Lua编程相关的多个库和工具,如luacom、luacurl、luafilesystem、lualogging和luasocket,这些都是在实际开发中非常有用的模块。接下来,我们将详细探讨这些库的...

    cocos2dx lua核心编程(第二版)配套代码

    学习配套代码时,需要理解Lua的基本数据类型(如数字、字符串、表、布尔值和函数)、控制结构(if-else、for、while等)、函数定义和调用,以及模块化编程等概念。 3. **Cocos2dx-Lua API**:配套代码中包含了Cocos...

    LUA脚本编程中文教程.zip

    Lua的特点包括小巧的语法、动态类型、垃圾回收机制、高效的运行速度以及模块化设计。 2. **应用领域**:Lua由于其灵活性和高性能,常被用于游戏引擎(如CryEngine、Unreal Engine)、配置文件、网络设备、测试脚本...

    lua编程第四版英文版

    4. **模块系统**:Lua没有内置的模块系统,但可以通过自定义的加载机制实现模块化编程,提高代码复用性和可维护性。 5. **垃圾回收**:Lua的垃圾回收机制基于引用计数和弱引用,自动管理内存,开发者无需显式地分配...

    lua 5.0 设计实现

    关于模块系统,Lua 5.0引入了require函数,允许模块化编程,便于代码组织和重用。它的模块系统简单而灵活,能够适应各种项目需求。 此外,Lua的错误处理机制也是其重要组成部分。它通过异常处理来中断程序执行,使...

    lua编程语言

    - **作用**: 为了提高代码的模块化程度,可以定义非全局函数。 - **示例**: ```lua local function privateFunc() print("This is a private function.") end privateFunc() -- 输出 "This is a private ...

    Lua控制台代码

    在本项目中,我们关注的是书中关于"Lua控制台"的部分,它提供了一个交互式的环境,开发者可以输入Lua代码并立即看到执行结果,这对于测试、调试和学习Lua语法非常有帮助。 为了实现这个 Lua 控制台,首先你需要下载...

    Lua 5.0.2 脚本语言

    - **模块系统**:Lua 提供模块化编程,方便组织和重用代码。 - **元表和元方法**:元表是Lua中实现面向对象编程的关键,元方法则是通过元表触发的行为。 - **闭包**:Lua 支持第一类函数和闭包,使得函数可以作为...

    Lua语言编程资料系列

    Lua是一种轻量级的脚本...通过这个"Lua语言编程资料系列",初学者不仅可以系统地学习Lua语言,还能了解到如何在实际项目中应用Lua,提升自己的编程技能。对于想要在嵌入式领域工作的人来说,掌握Lua语言是很有价值的。

Global site tag (gtag.js) - Google Analytics