nginx
文章平均质量分 90
nginx
fdsafwagdagadg6576
这个作者很懒,什么都没留下…
展开
-
Nginx rtmp 点播流程
直播场景涉及relay,live 模块,点播使用play模块模块设置static ngx_command_t ngx_rtmp_play_commands[] = {//一项为 "play",回顾点播业务的 nginx.conf 中,就配置了该命令。因此先看该模块是如何解析 play 配置项的: { ngx_string("play"), NGX_RTMP_MAIN_CONF|NGX_RTMP_SRV_CONF|NGX_RTMP_APP_CONF|NGX_CONF_1MOR...原创 2021-12-03 17:43:36 · 1791 阅读 · 0 评论 -
Nginx rtmp 转推
Nginx rtmp 获取流有两种方式,一种是别的server push给自己流,一种是pull拉流。有两种情况触发转推:一种是在终端publish之后转推,一种是在relay server pull之后的转推.流程图原理:1) 信令交互:转推的流程和终端publish的流程是一样的.接收流的nginx rtmp信令交互流程,参见推流篇.handshake,connect,createStream都一样的流程。2)audio/video将远端(remote)server注册成为..原创 2021-12-03 16:25:31 · 1970 阅读 · 0 评论 -
Nginx rtmp Relay拉流(转发pull)
流程图relay server:两个功能,拉流和转推Relay 场景=play 场景+publish场景+转推场景从上游拉流,对于上游是play,发送play请求.建立信令连接.就是向上游注册一个subscribe。参见play对于下游是publish,发送stream begin. 建立信令连接。下游已经注册成了subscribe,就是转流.pull拉流之后,立刻做转推(根据config)。handshake ,connect,createstream同publish,play连接.原创 2021-12-03 12:01:24 · 1270 阅读 · 3 评论 -
Nginx rtmp 拉流播放(play)
流程图:handshake,connect,createstream和publish场景一样。ngx_rtmp_recv接收也一样.消息play的处理:分成有流,没流两个场景:有流:play注册作为subscribe,在subscribes数组中添加一项。对于媒体没有任何关系,媒体任何遍历所有subscribe并转发.这就是拉流的原理,即注册成为subscribe,这样就可以接收流了没流: 绿色模块表示没流,其拉流的过程参见:先拉流,然后注册成为subscribe,接收流n...原创 2021-12-03 10:20:48 · 2258 阅读 · 0 评论 -
Nginx rtmp 推流(publish) 解析
整体结构图:先建立信令,然后接收媒体推流流程图1 handshake 阶段2 connect3 createStream4 publish5 接收av6转推图参见:通信层: 1) handshakehandshake是独立的handshake_send/recv.特别注意此处没有走转推ngx_rtmp_fire_event(s, NGX_RTMP_HANDSHAKE_DONE...).因为此处还没有与被转推的server建立handshake,所以无法connect成功..原创 2021-12-03 09:52:20 · 2104 阅读 · 0 评论 -
upstream demo
本文是nginx访问第三方服务之upstream使用_上善若水-CSDN博客 实例的详细讲解当需要访问第三方服务时,Nginx提供了2种异步方式来与第三方服务器通信:upstream与subrequest.本文将介绍upstream的使用方式,Nginx的HTTP反向代理模块就是基于upstream方式实现,当我们希望把第三方服务的内容几乎原封不懂地返回给用户时,一般使用upstream方式,它可以非常高效地透传HTTP。一 upstream的使用方式upstream的使用方式并不复杂,它提供原创 2021-11-15 17:47:52 · 1545 阅读 · 0 评论 -
Subrequest实例分析
subrequest是子请求。它并不是http标准里面的概念,它是在当前请求中发起的一个新的请求,它拥有自己的ngx_http_request_t结构,uri和args。subrequest是由HTTP框架提供的一种分解复杂请求的设计模式。它可以把原始请求分解为许多子请求,使得诸多请求协同完成一个用户请求,并且每个请求只关注一个功能. 使用subrequest来访问一个upstream的后端,并给它一个ngx_http_post_subre...原创 2021-11-14 12:36:02 · 2578 阅读 · 0 评论 -
Nginx module开发 简单实例——Filter模块
上篇笔记完成了一个简单的handler模块hello_module,本篇笔记将在上篇笔记的基础上增加一个filter模块,目的是将hanlder模块输出内容加粗变颜色。文章参考了http://tengine.taobao.org/book/chapter_04.html一、filter模块介绍 过滤(filter)模块是过滤响应头和内容的模块,可以对回复的头和内容进行处理。它的处理时间在获取回复内容之后,向用户发送响应之前。它的处理过程分为两个阶段,过滤HTTP回复的头部和主体,在...原创 2021-11-09 18:21:25 · 685 阅读 · 0 评论 -
Nginx hello和mytest handler代码分析
Handler模块简介定义: handler是一个模块作用:phase handler:此类型的模块也被直接称为handler模块。主要负责处理客户端请求并产生待响应内容,比如ngx_http_static_module模块,负责客户端的静态页面请求处理并将对应的磁盘文件准备为响应内容输出。Handler 模块(callback):接受来自客户端的请求并构建响应头和响应体。基本上作为第三方开发者最可能开发的就是三种类型的模块,即handler,filter和load-balanc..原创 2021-11-09 12:07:02 · 633 阅读 · 0 评论 -
Nginx upstream模块与负载均衡模块分析
upstream模块 (100%)nginx模块一般被分成三大类:handler、filter和upstream。前面的章节中,读者已经了解了handler、filter。利用这两类模块,可以使nginx轻松完成任何单机工作。而本章介绍的upstream模块,将使nginx跨越单机的限制,完成网络数据的接收、处理和转发。upstream模块接口从本质上说,upstream属于handler,只是他不产生自己的内容,而是通过请求后端服务器得到内容,所以才称为upstream(上游)。请求并取得响应原创 2021-11-08 21:00:04 · 557 阅读 · 0 评论 -
nginx的请求处理阶段
http请求格式简介 (99%)首先介绍一下rfc2616中定义的http请求基本格式:Request = Request-Line * (( general-header | request-header | entity-header ) CRLF) CRLF [ message-body ]第一行是请求行(request line),用来说明请求方法,要访问的资源以及所使用的H转载 2021-11-08 18:02:16 · 1467 阅读 · 0 评论 -
Nginx development_guide笔记
Development guideHTTPConnectionEach HTTP client connection runs through the following stages:ngx_event_accept()accepts a client TCP connection. This handler is called in response to a read notification on a listen socket. A newngx_connection_tobj...原创 2021-11-03 15:52:00 · 292 阅读 · 0 评论 -
Nginx HTTP详解
请求的处理流程为了让大家更好的了解nginx中请求处理过程,我们以HTTP Request为例,来做一下详细地说明。从nginx的内部来看,一个HTTP Request的处理过程涉及到以下几个阶段。初始化HTTP Request(读取来自客户端的数据,生成HTTP Request对象,该对象含有该请求所有的信息)。 处理请求头。 处理请求体。 如果有的话,调用与此请求(URL或者Location)关联的handler。 依次调用各phase handler进行处理。 在这里,我们需要..原创 2021-10-28 17:34:18 · 4255 阅读 · 0 评论 -
Ngnix Rtmp详解
目录正文解析配置文件配置的层次结构如下图:二、数据结构逻辑关系图附录:配置项日志events { worker_connections 1024;}//http {} 为HTTP模块 (类型:NGX_HTTP_MODULE)http { ...... server { listen 80; server_name localhost; lo...原创 2021-09-04 23:00:30 · 1318 阅读 · 0 评论 -
系统调优笔记
开篇词 | 万变不离其宗,性能优化也有章可循基础设施优化 (6讲)01 | CPU缓存:怎样写代码能够让CPU执行得更快?CPU 的多级缓存提升数据缓存的命中率提升多核 CPU 下的缓存命中率。小结:CPU 缓存分为数据缓存与指令缓存.对于数据缓存,我们应在循环体中尽量操作同一块内存上的数据,由于缓存是根据 CPU Cache Line 批量操作数据的,所以顺序地操作连续内存数据时也有性能提升。对于指令缓存,有规律的条件分支能够让 CPU 的分支预测发挥作用,进一步提.原创 2021-01-13 17:02:27 · 2705 阅读 · 0 评论 -
Nginx 多进程连接请求/事件分发流程分析
Nginx 多进程连接请求/事件分发流程分析https://www.cnblogs.com/NerdWill/p/4992345.htmlNginx使用多进程的方法进行任务处理,每个worker进程只有一个线程,单线程循环处理全部监听的事件。本文重点分析一下多进程间的负载均衡问题以及Nginx多进程事件处理流程,方便大家自己写程序的时候借鉴。一、监听建立流程整个建立监听soc...转载 2019-06-25 22:43:46 · 276 阅读 · 0 评论