05 | [视频]opm项目导读
温铭
该思维导图由 AI 生成,仅供参考
00:00 / 00:00
1.0x
- 2.0x
- 1.5x
- 1.25x
- 1.0x
- 0.75x
- 0.5x
你好,我是温铭。
今天的内容,我特意安排成了视频的形式来讲解。不过,在你看视频之前,我想先问你这么几个问题:
在真实的项目中,你会配置 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
《OpenResty 从入门到实战》,新⼈⾸单¥59
立即购买
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
全部留言(12)
- 最新
- 精选
- 奕lua_package_path "$prefix/lua/?.lua;$prefix/lua/vendor/?.lua;;"; 这个后面为什么有两个 分号呢 ?
作者回复: 两个分号的意思是默认的查找路径
2019-06-055 - 业余草讲师是在秀发际线😊
作者回复: :)
2019-06-064 - 洁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-054 - wusiration1.需要在lua_package_path中配置lua的源码路径 2.参照opm和openresty.org,源码结构均为util/,conf/,templates/,lua/ 老师,学习openresty需要对nginx了解到什么程度啊
作者回复: 后面有 nginx 的基础知识章节介绍,对于 nginx 能看懂配置,知道它的大概原理就行了
2019-06-171 - 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-172 - 小鱼👍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-113 - 小羊i = i+1 下标计算 , 最后的 print 没有听懂。。。 为什么有性能优化?
作者回复: 大概的原因是跳过了 Lua 层面的字符串拼接,print 函数不仅接受字符串作为参数,也接受数组作为参数。后面性能优化章节还会继续这个话题。
2019-06-07 - 亞老师,作为一个刚接触的菜鸟。感觉都不是太理解。
作者回复: 慢慢来,先有一个大概的印象
2019-06-052 - 北冥Master变量前面要加local,函数前面是不是也应该加:local function _M.do_upload() end2019-11-1611
- Geek_4c1fae为什么您说的这个opm是没有测试案例的您能解释一下吗?2023-07-22归属地:北京
收起评论