openresty安装并使用lua进行业务逻辑处理

OpenResty 基础教程及Lua动态脚本实现

OpenResty 简介

OpenResty® 是一个基于 Nginx 与 Lua 的高性能 Web 平台,它将 Nginx 的 C 模块和 Lua 脚本相结合,提供了一个强大的 Web 应用服务器和反向代理服务器。OpenResty 特别适合处理高并发的 Web 应用,能够轻松应对数以万计的并发连接1。

安装 OpenResty

在 Ubuntu 20.04 上安装 OpenResty

  1. 添加 OpenResty 的官方 PPA 到你的系统:

     

    sudo apt-get install software-properties-common sudo add-apt-repository ppa:openresty/ppa

  2. 更新软件包列表并安装 OpenResty:

     

    sudo apt-get update sudo apt-get install openresty

在 CentOS 8 上安装 OpenResty

  1. 使用 dnf 安装 OpenResty:
     

    sudo dnf install -y yum-utils sudo dnf install -y openresty

Lua 动态脚本基础

Lua 是一种轻量级的脚本语言,它以其简洁和高性能而闻名。OpenResty 内置了 LuaJIT,一个 Lua 的即时编译版本,这使得 Lua 脚本能够在 OpenResty 中高效运行。

Lua 环境搭建

在 Windows 上搭建环境

从 OpenResty 官网下载 Windows 版本的 OpenResty,解压后可以直接使用 LuaJIT 命令行工具。

在 Linux/Mac OS X 上搭建环境

通过 LuaJIT 官网下载并编译安装 LuaJIT。

Lua 编码规范

  • 使用 4 个空格作为缩进。
  • 在操作符两边使用空格分隔。
  • 避免在行尾添加分号,这在 Lua 中是不必要的。

Lua 动态脚本示例

下面是一个简单的 Lua 脚本示例,它展示了如何在 OpenResty 中使用 Lua 来处理 HTTP 请求。

示例:Lua 动态脚本处理 HTTP 请求

  1. 创建一个 Lua 脚本文件 hello.lua

     

    -- hello.lua local function say_hello() ngx.say("Hello, World!") end say_hello()

  2. 在 OpenResty 的配置文件中,设置一个 location 来执行这个 Lua 脚本:

     

    server { listen 8080; location /lua { content_by_lua_block { local say = require("hello") say.hello() } } }

  3. 启动 OpenResty 并访问 http://localhost:8080/lua,你将看到页面上显示 "Hello, World!"。

集成 Prometheus 监控

为了监控 OpenResty 的性能,我们可以集成 Prometheus。以下是一个基本的集成步骤:

  1. 安装 Prometheus 并运行它。

  2. 在 OpenResty 中集成 prometheus-nginx-log-exporterlua-resty-prometheus 模块来收集指标。

  3. 配置 Prometheus 抓取 OpenResty 的指标。

  4. 使用 Grafana 可视化指标数据。

示例:集成 Prometheus

  1. 安装 Prometheus(可以通过 Docker 安装):

     

    docker run -d -p 9090:9090 prom/prometheus

  2. 配置 OpenResty 使用 lua-resty-prometheus 模块:

     

    http { lua_shared_dict prometheus_metrics 10M; init_by_lua_block { local prometheus = require("resty.prometheus") local metrics = prometheus.new() metrics:histogram("my_http_request_duration_seconds", "HTTP request latency", {0.1, 0.3, 1.5, 10}) } log_by_lua_block { local request_duration = ngx.now() - ngx.req.start_time() metrics:histogram("my_http_request_duration_seconds", request_duration, {"status"=ngx.status}) } }

  3. 配置 Prometheus 抓取指标,编辑 prometheus.yml 文件,添加抓取配置。

  4. 使用 Grafana 连接 Prometheus 数据源,并创建仪表板。

通过以上步骤,你可以在 OpenResty 中实现 Lua 动态脚本的基本处理,并通过 Prometheus 进行监控。这为构建高性能的 Web 应用和服务提供了一个坚实的基础。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/26119.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

爽快,通透,自洽

那些消耗你的人和事,多看一眼都是你的不对。不必过度为他人提供情绪价值,可以理解别人的处境,但边界感很重要。让别人开心不是你的责任。控制情绪不是让我们在生活中隐藏情绪,而是允许自己有情绪,并做自己情绪的主人。…

最新thinkphp5内核全开源女神赢口红H5公众号版第五版(100%可经营)

最新thinkphp5内核全开源女神赢口红H5公众号版第五版(100%可经营) 搭建教程 1、程序为thinkPHP5开发 php版本要求5.6!不支持虚拟主机! 2、上传程序到您的根目录!导入m213.sql文件!修改数据库配置文件app…

WordPress模板推荐

WordPress外贸主题 wordpress跨境电商独立站主题,wordpress外贸建站模板。 手机配件wordpress外贸网站模板 充电器、移动电源、手机膜、手机电池、手机壳、手机转接头等手机配件wordpress外贸网站模板。 毛巾WordPress外贸主题 毛巾、面巾、婴童毛巾、浴巾、方巾、…

【深度学习】【NLP】Bert理论,代码

论文 : https://arxiv.org/abs/1810.04805 文章目录 一、Bert理论BERT 模型公式1. 输入表示 (Input Representation)2. 自注意力机制 (Self-Attention Mechanism)3. Transformer 层 (Transformer Layer) 二、便于理解Bert的代码1. 自注意力机制2. Transformer 层3. …

2024 AEE | 风丘科技将亮相日本爱知国际会展中心——共同创造!

2024年名古屋汽车工程博览会(Automotive Engineering Exposition 2024 NAGOYA)将于7月17-19日在日本爱知县国际展示场(Aichi Sky Expo)开展。本展会是专门为活跃在汽车行业的工程师和研究人员举办的汽车技术展览,汇聚了…

Python办公MySQL(一):安装MySQL以及Navicat可视化工具(附送Navicat到期解决方法)

目录 专栏导读1、下载 MySQL Community Server2、安装3、安装Navicat4、连接刚刚安装的MySQL5、创建一个数据库方法1方法2 6、创建一张表方法1:准备一个test文件方法2: Navicat到期解决总结 专栏导读 🌸 欢迎来到Python办公自动化专栏—Pytho…

干货 | 2024元宇宙技术融合与新质生产力的创新实践(免费下载)

【1】关注本公众号,转发当前文章到微信朋友圈 【2】私信发送 【3】获取本方案PDF下载链接,直接下载即可。 如需下载本方案PPT/WORD原格式,请加入微信扫描以下方案驿站知识星球,获取上万份PPT/WORD解决方案!&#xff…

Craig Federighi 和 John Giannandrea 在 WWDC 上谈论苹果智能技术

WWDC 主题演讲结束后,苹果公司的克雷格-费德里吉(Craig Federighi)和约翰-吉安南德雷亚(John Giannandrea)坐下来,更深入地讨论了苹果智能公司在人工智能方面所做的努力,包括该公司是如何训练模…

三高系统的架构设计方案:高并发、高可用、高性能

文章目录 一、互联网系统三高概述1、互联网的三高2、高并发3、高可用4、高性能 二、高并发、高性能技术解决方案1、多高的并发才算高并发?2、水平扩展3、负载均衡思想4、缓存思想5、池化复用思想6、异步思想7、预处理-惰性更新思想8、分而治之思想 三、高可用技术解…

【OS】AUTOSAR OS调度器实现原理

目录 前言 正文 1.Scheduler逻辑原理概览 2.Scheduler配置 3.Scheduler具体实现原理 4.Scheduler初始化 5. Scheduler任务的插入 6.Scheduler任务的弹出 7.总结 前言 在<<【OS】AUTOSAR Os是如何启动第一个Task的>>一文中我们介绍了AUTOSAR Os是如何启动…

BCZYYb(钡铈锆钇镱)主要用作电解质 我国技术研究与生产步伐正在加快

BCZYYb&#xff08;钡铈锆钇镱&#xff09;主要用作电解质 我国技术研究与生产步伐正在加快 BCZYYb&#xff0c;钡铈锆钇镱氧化物&#xff0c;钙钛矿结构&#xff0c;外观为白色至浅黄色粉末状&#xff0c;主要用作电解质&#xff0c;功能是传输离子&#xff0c;具有化学稳定性…

硬核新品!M4E EDU民航考培一体无人机

天途上新啦&#xff01; 应我国民用无人机首项强制性国家标准《民用无人驾驶航空器系统安全要求》&#xff0c;天途对现有小型无人机训练机的飞控、电池、感知避障和电子围栏等软硬件全面升级设计&#xff0c;严格按国标GB42590-2023规范生产。 M4E EDU四轴多旋翼无人机是天途…

LabVIEW处理大量数据时,怎样确保数据的准确性和完整性?

在LabVIEW处理中&#xff0c;确保大量数据的准确性和完整性至关重要。以下是详细的多角度分析和建议&#xff0c;以确保在LabVIEW中处理大量数据时&#xff0c;数据的准确性和完整性&#xff1a; 1. 数据采集阶段 1.1 高精度硬件选择 选择高精度的数据采集硬件&#xff0c;如…

[数据集][目标检测]变电站火灾检测电力场景烟雾明火检测数据集VOC+YOLO格式140张2类别真实场景非PS合成

数据集格式&#xff1a;Pascal VOC格式YOLO格式(不包含分割路径的txt文件&#xff0c;仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数)&#xff1a;140 标注数量(xml文件个数)&#xff1a;140 标注数量(txt文件个数)&#xff1a;140 标注类别…

Hive的存储格式和压缩算法的特点和选择

1、数据存储格式&#xff1a; ①TEXTFILE HIVE 中默认的存储格式&#xff1b; 一般使用在数据贴源层(ODS 或 STG) &#xff0c;针对需要使用脚本 LOAD 加载数据到 HIVE 数仓表中的情况&#xff1b;需要把表里数据导出或直接可以查看等场景&#xff0c;作为BI供数 易读性…

服务部署:使用docker部署开源Xxl-Job任务调度平台项目

一、项目构建 1、从gitee上下载源码&#xff1a;xxl-job: 一个分布式任务调度平台&#xff0c;其核心设计目标是开发迅速、学习简单、轻量级、易扩展。现已开放源代码并接入多家公司线上产品线&#xff0c;开箱即用。https://gitee.com/xuxueli0323/xxl-job 2、本地使用…

适时示弱,才能在不动声色中自我沉淀,于韬光养晦中成就自己

适时示弱&#xff0c;才能在不动声色中自我沉淀&#xff0c;于韬光养晦中成就自己。 言语越怂的人格局越大你是否有过这样的经历&#xff0c;与路人因鸡毛蒜皮的小事起了争执&#xff0c;然后情绪失控大打出手。与家人因观点看法不同&#xff0c;最后争得面红耳赤&#xff0c;…

wordpress轻量免费主题

WordPress建站公司 适合提供WordPress建站服务的公司或个体(个人)工作室使用的WordPress建站公司主题模板。 https://www.jianzhanpress.com/?p545 首屏大图红色简洁wordpress主题 首屏大图红色简洁wordpress主题&#xff0c;非常地高端大气上档次&#xff0c;可用于多个行…

Linux 系统迁移中的 tar(bsdtar)备份陷阱与解决方案

&#xff08;首发地址&#xff1a;学习日记 https://www.learndiary.com/2024/06/bsdtar-numeric-owner/&#xff09; 朋友们&#xff0c;大家好&#xff01;我是来自淘宝网学习日记小店的 learndiary&#xff0c;专注于 Linux 服务领域。今天&#xff0c;我想和大家分享一次我…

轻松驾驭视频节奏:灵活调整视频播放速度,让视频内容更出彩!

视频已经成为了我们生活中不可或缺的一部分。无论是观看电影、电视剧&#xff0c;还是浏览短视频、直播内容&#xff0c;我们都希望能够根据自己的喜好和需求来调整视频的播放速度&#xff0c;甚至精确控制每一秒的播放内容。那么&#xff0c;如何轻松实现这一愿望呢&#xff1…