02 | 如何写出你的“hello world”?
该思维导图由 AI 生成,仅供参考
- 深入了解
- 翻译
- 解释
- 总结
OpenResty 是一个基于 NGINX 的开发平台,本文以“hello world”为例,介绍了如何编写和运行最简单的 OpenResty 程序。文章首先展示了如何使用命令行工具 `resty` 来输出“hello world”,并解释了 `resty` 实际上是启动了一个 NGINX 服务。接着,文章详细介绍了 OpenResty 的安装方法,推荐使用包管理系统来安装,并解释了不推荐源码安装的原因。作者还分享了个人看法,强调了独立思考在技术领域的重要性。此外,文章还介绍了 OpenResty CLI 工具 `resty` 的功能和用法,包括共享内存字典的设置和查询,以及与调试工具的配合使用。 文章以简单的“hello world”程序为切入点,深入浅出地介绍了 OpenResty 的基本概念和使用方法,适合初学者快速了解 OpenResty 的特点和基本操作。通过一行简单的 `hello, world` 代码,延展到OpenResty 的安装和 CLI,并在最后启动了 OpenResty 进程,运行了一个真正的后端程序。其中, `resty` 是后续会频繁使用的命令行工具,而 OpenResty 的背后隐藏了非常多的文化和技术细节,展示了更全面、更立体的 OpenResty,而不仅仅是它对外暴露出来的 API。 最后,作者留下了一个思考题,提出了在 Lua 代码越来越多时如何保证代码的可读性和可维护性的问题,鼓励读者留言分享解决方法。整体而言,本文内容丰富,涵盖了 OpenResty 的基本概念和使用方法,同时引发了读者的思考和讨论。
《OpenResty 从入门到实战》,新⼈⾸单¥59
全部留言(60)
- 最新
- 精选
- Geek_144c1d先将代码打包成`.lua` 文件 使用配置文件指令 `content_by_lua_file` 引用 类库代码 如果有 reqiure 的需求 可利用 `lua_package_path` 和 `lua_package_cpath` 设定类库加载目录
作者回复: 👍
2019-05-2932 - cylim既然是基础课,应该提醒我们关闭server。 openresty -s quit -p `pwd` -c conf/nginx.conf 把lua代码写在其他文件上,然后带入nginx.conf使用。
作者回复: 欢迎补充:)
2019-05-29219 - helloworld编译安装PART1: 老师说的对,对于大多数项目来说都没有必要自己折腾编译安装,费时费力。不过有时候自己动手编译安装也是必须的,因为根据具体项目的需要,比如CDN项目,官方的默认编译选项就缺少一些必要的模块,比如ngx_cache_purge模块,如果需要对ipv6做支持,还需要nginx的--with-ipv6编译选项,等等。下面是我根据官方打包文件总结的centos平台下编译安装最新版本的openresty具体流程。centos6下完美运行,7也应该不是问题。给各位小伙伴在需要的时候参考,少走弯路,节省宝贵时间。 # 安装 pcre wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.42.tar.bz2 tar xjf pcre-8.42.tar.bz2 cd pcre-8.42 ./configure --prefix=/usr/local/openresty/pcre \ --disable-cpp --enable-jit \ --enable-utf --enable-unicode-properties make -j24 V=1 > /dev/stderr make install rm -rf /usr/local/openresty/pcre/bin rm -rf /usr/local/openresty/pcre/share rm -f /usr/local/openresty/pcre/lib/*.la rm -f /usr/local/openresty/pcre/lib/*pcrecpp* rm -f /usr/local/openresty/pcre/lib/*pcreposix* rm -rf /usr/local/openresty/pcre/lib/pkgconfig # 安装zlib cd /usr/local/src wget http://www.zlib.net/zlib-1.2.11.tar.xz tar xf zlib-1.2.11.tar.xz cd zlib-1.2.11 ./configure --prefix=/usr/local/openresty/zlib make -j24 \ CFLAGS='-O3 -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -g' \ SFLAGS='-O3 -fPIC -D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -g' > /dev/stderr make install rm -rf /usr/local/openresty/zlib/share/ rm -f /usr/local/openresty/zlib/lib/*.la rm -rf /usr/local/openresty/zlib/lib/pkgconfig/ # 安装openssl cd /usr/local/src wget https://www.openssl.org/source/openssl-1.1.0j.tar.gz wget https://raw.githubusercontent.com/openresty/openresty/master/patches/openssl-1.1.0d-sess_set_get_cb_yield.patch --no-check-certificate wget https://raw.githubusercontent.com/openresty/openresty/master/patches/openssl-1.1.0j-parallel_build_fix.patch --no-check-certificate tar zxf openssl-1.1.0j.tar.gz cd openssl-1.1.0j 继续见PART2
作者回复: 👍
2019-06-2113 - aaron我使用yum安装了openresty之后并没有resty工具,我也没发现-p 'pwd'的意义何在,-c nginx.conf也启动不起来,最后我是用openresty -c /opt/geektime/conf/nginx.conf启动的。。。
作者回复: centos 下需要单独安装:sudo yum install openresty-resty
2019-05-3045 - HelloBug温铭老师,你好,有读者问vscode有没有openresty扩展,你说你用的lua扩展,这个是什么意思呢?还有老师你用的是什么IDE呀?
作者回复: 我用的是 vs code,用的是 lua 和 luacheck 两个插件
2019-06-043 - 业余草content_by_lua指令看起来非常怪!没有用{}
作者回复: 嗯,可以用 content_by_lua_block
2019-05-293 - 逗鹅冤老师好,有个问题请教一下 openresty -v nginx version: openresty/1.15.8.1 which openresty /usr/local/bin/openresty which resty /usr/local/bin/resty 这些都没问题 which luajit luajit not found luajit为什么没有呢
作者回复: luajit 的可执行文件并没有被拷贝到/usr/local/bin目录下,所有找不到。这个是为了避免了已经安装的 luajit 冲突,毕竟 OpenResty 自带的 LuaJIT 是自己维护的版本
2019-06-152 - HelloBug温铭老师好,假设操作系统中已经安装openssl/pcre/zlib,使用openresty的仓库地址,然后使用包管理器安装openresty,这个时候操作系统里有几个openssl/pcre/zlib呢?只有一个的话,是不是openresy维护的openssl/pcre/zlib?如果是的话,升级或者说安装操作系统中的更新版本的openssl(不是升级openresy维护的openssl),能否升级成功呢?如果升级成功,openresty执行的时候是否会出错呢?
作者回复: openresty 维护的 openssl/pcre/zlib 都会安装在 /usr/local/openresty/ 目录下,并不会冲突。
2019-06-042 - moshufenmo请问老师,开发openresty使用什么IDE? 一直在用sublime,但是lua文件一多,相互间引用关系就很难查看
作者回复: 没有什么特别好用的,我用的是微软的 vscode
2019-05-292 - 天天向上mac brew安装貌似很费劲 网上很多方法都报错
作者回复: brew 安装也需要先指定 OpenResty 的仓库地址,具体请查看openresty.org 的文档
2019-05-292