OpenResty、Lua介绍认识

news/2024/12/26 14:44:35/

文章目录

  • 官网网址
  • openrestry介绍
    • OpenResty 的关键特性包括:
    • 应用场景:
    • Lua 在 OpenResty 中的应用
  • 安装openrestry
  • 简单实验下

官网网址

开源版在线文档和支持
商业版支持
什么是Lua
学习Lua语法
每篇一问:什么是编译型语言,什么是解释型语言

编译型语言的源代码在执行之前需要通过编译器转换成目标机器码(通常是二进制代码01)。这个过程将源代码完全转换为计算机能直接执行的代码,通常是平台特定的。常见的编译型语言包括 C、C++、Go 等。
编译后的机器码是直接可执行的,运行时不需要额外的解释过程,因此执行速度较快。编译型语言通常在性能要求高的应用中使用,如操作系统开发、游戏引擎等。
编译后生成的机器码通常是针对特定平台(操作系统和硬件)生成的。要在不同平台上运行,可能需要重新编译源代码。这使得编译型语言程序在跨平台方面可能需要额外的处理。

解释型语言的源代码不需要先编译成机器码,而是由解释器逐行解析并执行。解释器会在运行时将源代码转换为机器可以理解的指令并立即执行。常见的解释型语言包括 Python、JavaScript、Ruby
由于每次执行时都需要解释器逐行解析和执行源代码,执行速度较慢。解释型语言通常用于开发周期较短、灵活性要求高的应用,如脚本语言和Web开发等。
解释型语言的源代码需要在目标机器上运行时由解释器逐行解释执行,因此需要确保目标环境中已安装相应的解释器。源代码文件本身也需要被一起分发。
在这里插入图片描述

openrestry介绍

说实话之前没听过,初来乍到的,但是你一定听过nginx并且懂一些配置,那么openresry就是nginx结合一些Lua脚本

OpenResty 是基于 Nginx 的一个高性能 Web 应用服务器,它在 Nginx 的基础上扩展了很多功能,主要通过集成 Lua 脚本语言来实现更加灵活和强大的应用开发。简单来说,OpenResty 是在 Nginx 的框架上,结合 Lua 脚本引擎来增强其动态处理能力,适用于构建复杂的 Web 应用和服务。

OpenResty 的关键特性包括:

Nginx 的高性能基础:OpenResty 继承了 Nginx 的所有高效性能,尤其是在处理并发请求时的优势。这使得 OpenResty 在处理大量 HTTP 请求时,依然保持出色的吞吐量和低延迟。

Lua 脚本支持:OpenResty 集成了 LuaJIT 引擎,允许用户在 Nginx 的各个阶段(例如请求处理、响应处理等)插入 Lua 脚本代码。这为开发者提供了极大的灵活性,能够处理复杂的业务逻辑和动态内容生成,而不仅仅依赖于传统的静态配置。

内建的模块支持:OpenResty 提供了大量的内建模块,涵盖了诸如 Web 服务接口(API)、缓存、数据库连接池、异步 I/O 操作等常见的 Web 应用需求。通过这些模块,开发者可以快速实现一些常见的 Web 功能,而无需额外的配置或开发工作。

高扩展性和可定制性:借助 Lua 脚本语言,开发者可以轻松实现自定义功能,做出特殊的请求处理逻辑,或者扩展 Nginx 的原有功能。而且,Lua 的高效性和灵活性使得在高负载场景下,依然可以保持较好的性能。

内存管理与异步 I/O:OpenResty 提供了非常高效的内存管理,支持非阻塞式的异步 I/O 操作,使得它能够高效地处理大量的并发连接和请求。这对于构建高性能、高可用的 Web 服务至关重要。

灵活的配置和开发环境:开发者可以在 OpenResty 中利用 Lua 脚本对请求、响应、缓存、重定向等进行高度自定义,同时也能够方便地扩展 Nginx 的配置文件,完成更为复杂的需求。

应用场景:

OpenResty 广泛应用于各种需要高性能和灵活扩展的 Web 应用场景,常见的包括:
API 网关:利用 OpenResty 的高性能处理能力,快速构建反向代理、负载均衡、API 请求的路由与控制。
实时数据处理与动态内容生成:通过 Lua 脚本的强大功能,实现动态 Web 内容的生成和数据处理。
Web 服务与微服务架构:由于其高度的可定制性,OpenResty 适用于微服务架构中的服务网关,提供灵活的请求分发和处理机制。

与 Nginx 的比较:
尽管 OpenResty 是基于 Nginx 的,但它的灵活性和可扩展性更强。Nginx 原生不支持嵌入式脚本语言,通常需要通过 C 语言扩展或第三方模块来增加动态处理能力。而 OpenResty 提供了内置的 Lua 支持,简化了动态脚本的开发和集成,从而使得开发者能够直接在 Nginx 的配置中进行复杂的动态处理,而不需要外部扩展。

总之,OpenResty 是在 Nginx 基础上,通过集成 Lua 等功能,进一步提高了 Nginx 的可扩展性和灵活性,使其成为一个强大的 Web 应用开发框架。

Lua 在 OpenResty 中的应用

在 OpenResty 中,Lua 被用来编写处理 Web 请求的脚本。通过 Lua,OpenResty 能够灵活地控制请求的流程,比如实现动态路由、访问控制、数据处理、缓存控制等。与 Nginx 配合时,Lua 使得 OpenResty 可以在请求的生命周期中执行自定义的逻辑,而不需要重新编译 Nginx 或者依赖外部的扩展模块。

安装openrestry

我的ubuntu系统,可按照下面的链接安装
开源版在线文档和支持

systemctl stop apache2.service;systemctl stop nginx
ss -lntp| grep 80
#确保80没有
apt-get -y install --no-install-recommends wget gnupg ca-certificates lsb-release
wget -O - https://openresty.org/package/pubkey.gpg | sudo apt-key add -
echo "deb http://openresty.org/package/ubuntu $(lsb_release -sc) main"  | sudo tee /etc/apt/sources.list.d/openresty.list
apt-get update
apt-get -y install openresty
#安装成功后查看
ls /usr/local/openresty/bin
openresty  opm  resty
export PATH=/usr/local/openresty/bin:$PATH

简单实验下

根据官网的步骤


http://www.ppmy.cn/news/1558290.html

相关文章

企业该如何进行合格文件外发管理

随着信息技术的迅猛发展,企业间的文件交换变得越来越频繁。但是,如何确保文件传输的安全性与效率,成为企业管理者面临的一个重大挑战。镭速(Raysync)文件外发管理方案以其独特的优势,成为众多企业的首选。本…

08 Django - Django媒体文件静态文件文件上传

九、Django媒体文件&静态文件&文件上传 1.静态文件和媒体文件 媒体文件: 用户上传的文件, 叫做media静态文件: 存放在服务器的 css, js, image等,叫做static 在Django中使用静态文件 {% static img/example.jpg %} > static模板关键字就是在settings.py中指定的…

Selenium 和 Playwright两大框架的不同之处

自动化测试工具百花齐放,其中 Selenium 和 Playwright 是两大热门框架,谁才是你的最佳选择?面对企业项目的真实需求,它们的差异究竟在哪儿? Selenium 和 Playwright 是两种流行的自动化测试工具,它们都被用…

PR基础(2)

上一篇分享了影视后期软件中的PR的一些基础使用,包括序列、工具栏、简单视频拼接,本篇将继续讲解记录其他的基础使用。 废话不多说。 新建项 子项目 pr 软件中在 “新建项”按钮选项中有一个“项目快捷方式”,就是创建我们认知意义上的子项…

springboot492基于java线上历史馆藏系统(论文+源码)_kaic

摘 要 计算机网络发展到现在已经好几十年了,在理论上面已经有了很丰富的基础,并且在现实生活中也到处都在使用,可以说,经过几十年的发展,互联网技术已经把地域信息的隔阂给消除了,让整个世界都可以即时通话…

Opencv实现图像的腐蚀、膨胀及开、闭运算

图像的腐蚀、膨胀及开闭运算 目录 图像的腐蚀、膨胀及开闭运算图像的腐蚀、膨胀图像的腐蚀图像的膨胀 图像的开、闭运算图像的开运算图像的闭运算 图像的腐蚀、膨胀 图像的腐蚀 概念:将图像中的高亮区域或白色部分进行缩减细化,其运行结果图比原图的高亮…

科技快讯 | 刘强东提前发年终奖;理想超充站超时占用费试运营;美团听障骑手助手全量上线;微信视频号评论区可以斗图了

刘强东提前发年终奖 京东集团宣布,O序列员工将于1月26日,P序列员工将于2月27日收到2024年年终奖。年终奖结构升级为固定年终奖加目标年终奖,其中A级员工年终奖为8倍月薪。采销员工年终奖已于7月升级,2024年年终奖平均23薪&#xf…

MySQL45讲 第三十六讲 为什么临时表可以重名?——阅读总结

文章目录 MySQL45讲 第三十六讲 为什么临时表可以重名?——阅读总结一、引言二、临时表与内存表的区别(一)内存表(二)临时表 三、临时表的特性(一)可见性与生命周期(二)与…