Nginx

Nginx第三篇 功能扩展OpenResty简单使用 OpenResty就是嵌入了LuaJIT VM的Nginx;LuaJIT即采用C语言写的Lua代码的解释器。通过 OpenResty,我们可以把 nginx 的各种功能进行自由拼接, 重要的是,开发门槛并不高,我们只需要熟悉简单灵巧的Lua 语言和nginx基础知识就可以上手开发简单功能了。 阅读详情

Nginx优点:

  • 跨平台,配置简单
  • 非阻塞,高并发连接(最高5W)
  • 内存消耗小
  • 开源
  • 稳定性高

基本命令:

  • 启动 nginx.exe
  • 停止 nginx -s stop 或者 nginx -s quit
  • 重载配置 nginx -s reload
  • 查看版本 nginx -V

当访问192.168.0.1时出现“welcome to openresty”。如果想显示为“hello word”,则需要修改配置文件nginx.conf:

location / {
	# root html;
	# index index.html index.htm;
	
	default_type text/html;   # 编码
	content_by_lua_block{
		ngx.say("hello world")   # 嵌入lua代码/脚本
		
		# 也可以使用content_by_lua_file filepath嵌入lua脚本文件
	}
}

获取HTTP请求信息:

获取uri参数:

-- 获取get请求参数
local arg=nginx.req.get_uri_args()   -- 数组
for k,v in pairs(arg) do
    ngx.say(k, v)    # 循环打印数组
end

-- 获取post请求时,请求参数
ngx.req.read_body()   -- 解析body参数之前一定要先读取body
local arg=nginx.req.get_post_args()
for k,v in pairs(arg) do
    ngx.say(k, v)    # 循环打印数组
end

获取header

local header=ngx.req.get_headers()
for k,v in pairs(arg) do
    ngx.say(k, v)    # 循环打印数组
    ngx.say("<br>")
end

获取body

local data=ngx.req.get_body_data()
ngx.say(data)

OpenResty的目标是让web服务直接跑在Nginx服务内部,充分利用Nginx的非阻塞I/O模型,不仅对HTTP客户端请求,甚至于对远程后端,诸如MySQL,Redis等都进行一致的高性能响应。

常用架构:

  1. 负载均衡

  2. 单机闭环

    所有想要的数据都能从本地直接获取,在大多数时候无需通过网络去其他服务器获取。通过Lua程序直接访问文件系统和数据库。
    在这里插入图片描述

  3. 分布式闭环

    单机闭环会遇到两个问题:

    • 数据不一致问题(比如没有采用主从架构导致不同服务器数据不一致)
    • 遇到存储瓶颈(磁盘或者内存不够)

    解决数据不一致问题比较好的办法是采用主从或者分布式集中存储而存储瓶颈需要进行按照业务进行分片,将数据分散到多台服务器。

    在这里插入图片描述

  4. 接入网关

    接入网关又可以叫做接入层,及接收到流量的入口。在入口可以:
    在这里插入图片描述

Lua数据类型:

Lua 是动态类型语言,变量不要类型定义,只需要为变量赋值。 值可以存储在变量中,作为参数传递或结果返回。

Lua 中有 8 个基本类型分别为:nil、boolean、number、string、userdata、function、thread 和 table。

在这里插入图片描述

Lua变量有三种类型:全局变量,局部变量,表中的域。

Lua中的变量都是全局变量,包括语句块或者函数里的变量。除非用local显式声明为局部变量。

function fun()
	a = 10
	local b = 20
end

fun()

print(a, b)    -- 10, nil

条件运算:

-- if语句
if()
then
    print("hello world")
else
    print("222")
end

-- if嵌套
if()
then
    if()
    then
        print("22")
    end
end

循环语句

-- while循环
a = 10
while(a>10)
do
    print(a)
    a = a-1
end

-- repeat until	 重复执行循环,直到 指定的条件为真时为止
b = 10
repeat
    print(b)
    b = b-1
until(b<1)

-- for循环
for a = 1,10,2 do  
    print(a)        --1,3,5,7,9
end  

函数

function fun(a,b,c)
    return a+b+c
end

value = fun(1,2,3)
print(value)

引入模块

require "module"

print(module.sum(10,20))

更多笔记:
https://www.cnblogs.com/crazymakercircle/p/17052040.html#autoid-h2-0-0-0

Lua+OpenResty快速入门 Lua+OpenResty快速入门Lua概念特性应用场景Lua的安装Lua的语法第一个Lua程序Lua的注释标识符关键字运算符全局变量&局部变量Lua数据类型nilbooleannumberstringtabletablefunctionthreaduserdataLua控制结构if then elseif elsewhile循环repeat循环for循环ngx_lua模块概念ngx_lua模块环境准备方式一:lua-nginx-module方式一:lua-nginx-module方式二:OpenR 阅读详情

相关推荐

openresty的部署、nginx高速缓存的配置、nginx日志的可视化

OpenResty官网:http://openresty.org/cn/;OpenResty是一个基于 Nginx 与 Lua 的高性能 Web 平台,其内部集成了大量精良的 Lua 库、第三方模块以及大多数的依赖项。用于方便地搭建能够处理超高并发、扩展性极高的动态 Web 应用、Web 服务和动态网关。OpenResty通过汇聚各种设计精良的 Nginx 模块(主要由 OpenResty 团队自主开发),从而将 Nginx 有效地变成一个强大的通用 Web 应用平台。

Gong_yz的博客 3502

什么是OpenResty

OpenResty是一个成熟的网络平台,它集成了标准的Nginx核心,LuaJIT,许多精心编写的Lua库,许多高质量的第三方Nginx模块以及大多数外部依赖项。它旨在帮助开发人员轻松构建可伸缩的Web应用程序,Web服务和动态Web网关。 通过利用各种精心设计的Nginx模块(其中大部分由OpenResty团队自己开发),OpenResty有效地将nginx服务器转变为功能强大的Web应用服务...

yshir 4万+

nginx 配置 - nginx设置 - Nginx开机启动

1.简易安装nginx: ./configure --sbin-path=/usr/local/nginx/nginx --conf-path=/usr/local/nginx/nginx.conf --pid-path=/usr/local/nginx/nginx.pid 2.进入/usr/lib/systemd/system目录下,编写nginx.service文件: [Unit] Desc...

爱上编程已很久 2128

OpenResty介绍

一.前言 我们都知道Nginx有很多的特性和好处,但是在Nginx上开发成了一个难题,Nginx模块需要用C开发,而且必须符合一系列复杂的规则,最重要的用C开发模块必须要熟悉Nginx的源代码,使得开发者对其望而生畏。为了开发人员方便,所以接下来我们要介绍一种整合了Nginx和lua的框架,那就是OpenResty,它帮我们实现了可以用lua的规范开发,实现各种业务,并且帮我们弄清楚各个模块的编...

redfivehit的专栏 1355

Linux内网使用docker启动nginx或者直接使用nginx

本文详细介绍了在服务器上使用Docker部署Nginx的完整流程。首先说明如何安装Docker环境,包括下载、解压、配置系统服务等步骤。然后指导拉取Nginx镜像并打包成tar文件,上传到服务器加载。接着详细讲解Nginx容器的启动、配置挂载点、端口映射等操作,包括如何拷贝容器内配置文件到宿主机。文章还提供了常用Docker命令总结和注意事项,如自启动配置、多端口映射等。最后介绍了直接安装Nginx的替代方案,包括gcc、g++、zlib等依赖库的安装步骤。两种部署方式都给出了详细的命令和配置说明。

m0_71959549的博客 4704

RT-Thread Studio使用笔记(四):带片外Flash(W25Q128)的OTA(YModem)

前言 在学习OTA之前,请先参考上两篇博客写的关于SPI设备及W25Q128的使用方法,传送门: https://blog.csdn.net/tigerots/article/details/107423633 https://blog.csdn.net/tigerots/article/details/107933991 如何使用OTA 一. 制作BootLoader 打开Bootloader 在线获取地址,注册,并根据RT-thread官方文档生成BootLoader,官方文档已经写的很清楚,再此

tigerots的专栏 4008

yum安装nginx,编译安装nginx

安装nginx

Peter1617的博客 4229

vue + video.js 加载多种视频流(HLS、FLV、RTMP、RTSP)

由于需要在一个项目内接入多种常用的视频流,所以接触到video.js,这里就做个记录。vue安装就不讲了,直接从项目开始了。RTSP格式已测试,无法成功播放,浏览器就识别不了STSP协议(提供两个解决方案:第一个是通过后端去转格式。第二个方案就是安装插件/中间件。目前想用浏览器直接播放RTSP格式流,没有其他更好的解决方法。

qq_17627195的博客 1万+

nginx文件和目录以及部分nginx命令

etc/nginx/conf.d/ 目录包含默认的 HTTP 服务器配置文件,其中以 .conf 结尾的 文件都包含在 /etc/nginx/nginx.conf 文件的顶层 http 代码块中。/var/log/nginx/ 目录是 NGINX 的默认日志位置,您可以从中找到一个 access.log 文件和 error.log 文件。/etc/nginx/ 目录是 NGINX 服务器的默认配置根,可以从中找到指示 NGINX 如何运行的配置文件。nginx -t 测试 NGINX 配置。

qq_52676760的博客 4603

Flow Matching03-01:微分方程【微分方程(描述变化规律的方程):包含未知函数和它的导数的方程】【公式解(精确)、数值解(逼近)】

好的,我将从数学角度详细解释Flow Matching,从高中生能理解的基础知识开始,逐步深入到高级概念。

u013250861的博客 219

13.0 针对跳转不存在Activity崩溃处理,改成弹Toast提示,去掉崩溃弹窗,避免app崩溃退出

在开发过程中,在app跳转到某个没注册的Acitivity时,往往会出现崩溃的场景,这样也不好,接下来就从framework中来拦截这个崩溃,改成toast提示,

安卓兼职framework和app工程师的博客 48

【Nginx】nginx隐藏版本号

在实际运用nginx中我们最好将我们的版本号直接隐藏,因为有些版本号的nginx被爆出了漏洞,所以我们为了安全起见,最好将我们的版本号隐藏。 1.对于未安装的nginx我们使用源码编译安装才可以将版本号和web服务器名称都更改掉。 我们需要进入我们的源码包的目录 编辑以下配置文件scr/core/nginx.conf 1 #define NGINX_VERSION "1.10.2" 2 #define NGINX_VER "nginx/" NGINX_VERSION 我将以上的两个配置文件修改.

姜太小白的博客 9626

HTML金色流星雨(完整代码)

HTML实现金色流星雨动态效果的完整代码。

AIGC 992

nginx配置开机启动/usr/local/nginx/sbin/nginx

Nginx 是一个很强大的高性能Web和反向代理服务器。虽然使用命令行可以对nginx进行各种操作,比如启动等,但是还是根据不太方便。设置开机自启动。 首先,在linux系统的/etc/init.d/目录下创建nginx文件,使用如下命令: vim /etc/init.d/nginx 在脚本中添加如下命令: #!/bin/sh # # nginx - this script starts and stops the nginx daemon # # chkconfig: - 85 15 # descri

三朝看客 1万+

YOLOv11涨点改进| CVPR 2026 |独家创新首发、特征融合改进篇| 引入FAAFusion傅里叶角对准融合模块,促进高低频特征融合,增强模型在小目标、密集目标检测和旋转目标检测任务高效涨点

🔥本文提出FAAFusion傅里叶角对准融合模块,用于改进YOLOv11网络模型。该模块通过在特征金字塔融合阶段对齐高低层特征的方向信息,缓解传统FPN直接融合带来的方向冲突问题。FAAFusion利用傅里叶旋转等变性原理,在频域估计主方向并进行特征对齐,显著提升了多尺度特征表达的一致性与有效性。实验表明,该方法在DOTA等遥感数据集上取得了新的最先进水平,特别适用于旋转目标检测任务。文章详细介绍了模块原理、结构优势,并提供了三种不同的YOLOv11改进配置方案和完整的核心代码实现。

Ai缝合怪、助力小伙伴高效发论文 152

【以太网硬件一】802.3xx标准怎么这么多?它们有什么关系?

IEEE 802.3标准发展历史简介

highman110的博客 5016

windows下nginx的安装及使用

本文介绍了Windows系统下Nginx的安装与基础使用方法。主要内容包括:1. 下载稳定版Nginx并解压;2. 通过双击或命令行启动Nginx;3. 验证启动成功的方法(访问localhost或查看进程);4. 修改监听端口和配置文件热更新;5. 两种关闭Nginx的方式(命令停止或强制终止进程);6. 配置负载均衡(通过proxy_pass转发请求并设置权重);7. 静态资源配置方法(指定本地目录映射)。文章提供了常用命令和配置示例,适合快速掌握Nginx的基本操作。

ywl470812087的博客 11万+

拆开它的“身体”,看懂割草机器人的五层系统架构

这篇文章深入解析了智能割草机器人的五层系统架构。机械层采用铝合金一体式车架和独立悬挂刀盘系统;电子层配备双处理器和多种传感器;固件层实现毫秒级安全响应;算法层融合多种定位技术实现厘米级精度;云服务层提供远程管理和AI优化。这套系统通过精密协同实现了智能割草的全流程闭环,展现了从机械结构到云端智能的完整技术栈,为户外智能设备设立了新的技术标杆。

智能硬件研发,欢迎交流 197

Nginx学习之Nginx高性能的实现原理

Nginx master-worker进程机制。IO多路复用机制。Accept锁及REUSEPORT机制。sendfile零拷贝机制1、Nginx进程机制1.1、Nginx进程机制概述许多web服务器和应用服务器使用简单的线程的(threaded)、或基于流程的(process-based)架构, NGINX则以一种复杂的事件驱动(event-driven)的架构脱颖而出,这种架构能支持现代硬件上成千上万的并发连接。

人工智能全栈工程师 | 智能算法研发与实战落地​专注于人工智能算法研究、代码实现与工程落地,提供从模型设计到部署应用的全流程解决方案。 2348

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

查看nginx是否启动_keepalived+nginx高可用nginx存活检测

摘要:Keepalived可以用来防止服务器单点故障的发生,通过配合NGINX可以实现web 前端服务的高可用,但目前多个项目使用keepalived搭建软负载时,与NGINX相互独立,未实现两者的相互关联。keepalived中添加NGINX存活监测模块可实现keepalived配合NGINX高可用。关键词(知识库热搜词):高可用 存活监测1案例背景•现有项目使用软负载的情况下,kee...

weixin_39860636的博客 2103

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

从 Ingress-NGINX Controller 迁移至 NGINX Ingress Controller

本文介绍了从社区版Ingress-NGINX Controller迁移到F5提供的NGINX Ingress Controller的两种方法:使用NGINX自定义资源或Kubernetes原生Ingress资源。文章详细对比了两者在SSL终止、TCP/UDP负载均衡、金丝雀部署、流量控制等方面的配置差异,并提供了具体的资源转换示例。迁移后可以充分利用NGINX Plus的高级功能,如会话保持、mTLS认证等。文档摘自《Kubernetes Ingress Controller Deployment and

NGINX开源社区的博客 1911

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

Nginx简介,Nginx搭载负载均衡以及Nginx部署前端项目

NGINX(读作:engine-x)是用于Web 服务、反向代理、内容缓存、负载均衡、媒体流传输等场景的开源软件。它最初是一款专为实现最高性能和稳定性而设计的 Web 服务器。除了 HTTP 服务器功能以外,NGINX 还可用作电子邮件(IMAP、POP3 和 SMTP)的代理服务器以及 HTTP、TCP 和 UDP 服务器的反向代理与负载均衡器。

lijie1025的博客 2256

掌握NGINX配置,就从这里开始:NGINX Config

掌握NGINX配置,就从这里开始:NGINX Config nginxconfig.io⚙️ NGINX config generator on steroids ????项目地址:https://gitcode.com/gh_mirrors/ng/nginxconfig.io 当你在面对NGINX的复杂配置时是否感到困扰?不用担心,NGINX Config这个开源项目就是你的解决方案。它是一...

gitblog_01163的博客 1739

重启 nginx

如果你只想重启某个特定的nginx实例,你可能需要找到该进程的PID并结束它,然后手动启动nginx。这通常不是推荐的做法,因为它可能会导致服务中断。要重启nginx,你可以使用命令行工具来执行这个任务。确保你有适当的权限来执行这些命令,通常需要root权限。如果你不是root用户,你可能需要使用。这将重新加载配置文件而不重启服务。

Smile_Gently的博客 1万+

nginx-ingress-controller升级nginx版本

title: “nginx-ingress-controller升级ingress版本”升级nginx-ingress-controller中nginx的版本more。

huyiqiuuuu的博客 1498
上一篇: 博物馆大盗问题 Python
下一篇: go学习笔记
sumatch
博客等级 码龄8年 251粉丝 59原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值