OpenResty 从入门到实战
温铭
OpenResty 软件基金会第一任主席,Apache APISIX 项目 VP
20903 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 52 讲
结束语 (1讲)
OpenResty 从入门到实战
15
15
1.0x
00:00/00:00
登录|注册

05 | [视频]opm项目导读

参考OpenResty官方网站
分享学习心得
提问
OpenResty代码结构组织
配置nginx.conf和Lua代码联动
可下载学习
上传到GitHub
性能优化铺垫
opm涉及数据库操作,使用PostgreSQL
OpenResty 的作者编写业务类 Lua 代码
项目结构和开发流程
OpenResty 中为数不多的网站类项目
其他
留言区
问题
课件参考
今日核心
标题:[视频]opm项目导读
参考文章

该思维导图由 AI 生成,仅供参考

00:00 / 00:00
    1.0x
    • 2.0x
    • 1.5x
    • 1.25x
    • 1.0x
    • 0.75x
    • 0.5x
    网页全屏
    全屏
    00:00
    你好,我是温铭。
    今天的内容,我特意安排成了视频的形式来讲解。不过,在你看视频之前,我想先问你这么几个问题:
    在真实的项目中,你会配置 nginx.conf,以便和 Lua 代码联动吗?
    你清楚 OpenResty 的代码结构该如何组织吗?
    这两个问题,也是今天视频课要解决的核心内容,希望你可以先自己思考一下,并带着问题来学习今天的视频内容。
    同时,我会给出相应的文字介绍,方便你在听完视频内容后,及时总结与复习。下面是今天这节课的文字介绍部分。

    今日核心

    opm 是 OpenResty 中为数不多的网站类项目,而里面的代码,基本上是由 OpenResty 的作者亲自操刀完成的。
    很多 OpenResty 的使用者并不清楚,如何在真实的项目中去配置 nginx.conf, 以及如何组织 Lua 的代码结构。确实,在这方面可以参考的开源项目并不多,给学习使用带了不小的阻力。
    不过,借助今天的这个项目,你就可以克服这一点了。你将会熟悉一个 OpenResty 项目的结构和开发流程,还能看到 OpenResty 的作者是如何编写业务类 Lua 代码的。
    opm 还涉及到数据库的操作,它后台数据的储存,使用的是 PostgreSQL ,你可以顺便了解下 OpenResty 和数据库是如何交互的。
    确认放弃笔记?
    放弃后所记笔记将不保留。
    新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
    批量公开的笔记不会为你同步至部落
    公开
    同步至部落
    取消
    完成
    0/2000
    荧光笔
    直线
    曲线
    笔记
    复制
    AI
    • 深入了解
    • 翻译
      • 英语
      • 中文简体
      • 中文繁体
      • 法语
      • 德语
      • 日语
      • 韩语
      • 俄语
      • 西班牙语
      • 阿拉伯语
    • 解释
    • 总结

    今天的内容以视频形式呈现,主要介绍了OpenResty中的一个网站类项目opm。该项目由OpenResty的作者亲自操刀完成,涉及配置nginx.conf和组织Lua代码结构等核心内容。通过学习opm项目,读者可以熟悉OpenResty项目的结构和开发流程,了解作者如何编写业务类Lua代码,以及opm项目涉及的数据库操作和性能优化内容。此外,文章提供了课件下载链接,并鼓励读者在留言区提问和分享学习心得。整体而言,本文为技术人员提供了学习OpenResty项目开发的重要参考资料,有助于他们深入了解OpenResty的应用和开发流程。

    仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
    《OpenResty 从入门到实战》
    新⼈⾸单¥59
    立即购买
    登录 后留言

    全部留言(12)

    • 最新
    • 精选
    • lua_package_path "$prefix/lua/?.lua;$prefix/lua/vendor/?.lua;;"; 这个后面为什么有两个 分号呢 ?

      作者回复: 两个分号的意思是默认的查找路径

      2019-06-05
      5
    • 业余草
      讲师是在秀发际线😊

      作者回复: :)

      2019-06-06
      4
    • lua_package_path "$prefix/lua/?.lua;$prefix/lua/vendor/?.lua;;";对于这个路径的$prefix还是有一点不太理解,可以在具体一点吗?

      作者回复: $prefix 就是 nginx 启动时候 -p 后面的路径。比如:nginx -p /usr/local/openresty, 那么 $prefix 的值就是 /usr/local/openresty

      2019-06-05
      4
    • wusiration
      1.需要在lua_package_path中配置lua的源码路径 2.参照opm和openresty.org,源码结构均为util/,conf/,templates/,lua/ 老师,学习openresty需要对nginx了解到什么程度啊

      作者回复: 后面有 nginx 的基础知识章节介绍,对于 nginx 能看懂配置,知道它的大概原理就行了

      2019-06-17
      1
    • X.
      大佬好,我用OR学习部署orangeAPI网关碰见点问题。 我搭建的实验环境是CentOS 7.6.1810,听你的在官网用yum安装的最新版OR没用编译安装(编译安装之前问题更多,,)然后nginx -v resty -v 都可以查看到信息,nginx也起来了,浏览网页也能看到OpenResty 启动orange的时候最后一步提示: [INFO] ORANGE_CONF=/usr/local/orange/conf/orange.conf nginx -p /usr/local/orange -c /usr/local/orange/conf/nginx.conf nginx: [error] init_by_lua error: init_by_lua:2: module 'orange.orange' not found: 1:我的lua_package_path "$prefix/usr/local/lor/?.lua;;$prefix/usr/local/orange/?.lua;;"; 是这么配置的,我看orange需要lor的支持,这个路径是只需要配置lor的lua路径,还是要把orange lua的路径也写上,就是说以后用的lua不止一个,是一起写在这么。 2:我看他意思是init_by_lua找不到orange.orange,我的是这样的 init_by_lua_block { local orange = require("orange.orange") local env_orange_conf = os.getenv("ORANGE_CONF") print(string.char(27) .. "[34m" .. "[INFO]" .. string.char(27).. "[0m", [[the env[ORANGE_CONF] is ]], env_orange_conf) -- Here, you can also use the absolute path, eg: local confige_file = "/home/openresty/orange/conf/orange.conf" local config_file = env_orange_conf or ngx.config.prefix().. "/conf/orange.conf" local config, store = orange.init({ config = config_file }) 我看你视频里说nginx.conf尽量少配置,我基本没动只改了lua_package_path ,但是orange默认的init_by_lua_block { local orange = require("orange.orange") 这里面不是一个文件,是orange.orange,他有lua的文件在orange的文件夹下还有个orange文件夹 这里面才有Lua文件 应该是启动文件吧,起不来跟这个 . 有关么。 万分感谢

      作者回复: orange 我不太清楚,建议最好到 orange 的 issue 里面提问。

      2019-07-17
      2
    • 小鱼👍
      opm命令报错 Can't locate Digest/MD5.pm in @INC (@INC contains: /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 .) at /usr/bin/opm line 16. BEGIN failed--compilation aborted at /usr/bin/opm line 16

      作者回复: 怎么安装的呢?这个是少了 perl 的库,需要用 cpanm 这样的包管理器安装下

      2019-07-11
      3
    • 小羊
      i = i+1 下标计算 , 最后的 print 没有听懂。。。 为什么有性能优化?

      作者回复: 大概的原因是跳过了 Lua 层面的字符串拼接,print 函数不仅接受字符串作为参数,也接受数组作为参数。后面性能优化章节还会继续这个话题。

      2019-06-07
    • 老师,作为一个刚接触的菜鸟。感觉都不是太理解。

      作者回复: 慢慢来,先有一个大概的印象

      2019-06-05
      2
    • 北冥Master
      变量前面要加local,函数前面是不是也应该加:local function _M.do_upload() end
      2019-11-16
      1
      1
    • Geek_4c1fae
      为什么您说的这个opm是没有测试案例的您能解释一下吗?
      2023-07-22归属地:北京
    收起评论
    显示
    设置
    留言
    12
    收藏
    沉浸
    阅读
    分享
    手机端
    快捷键
    回顶部