- 博客(22)
- 资源 (5)
- 收藏
- 关注
转载 Nginx-rtmp直播之业务流程分析--比较详细
1. 综述1.1 直播原理使用 obs 向 nginx 推送一个直播流,该直播流经 nginx-rtmp 的 ngx_rtmp_live_module 模块转发给 application live 应用,然后使用 vlc 连接 live,播放该直播流。1.2 nginx.conf# 创建的子进程数worker_processes 1;error_log stderr ...
2018-11-28 16:51:20 4928
转载 EPOLL事件之EPOLLRDHUP
在对系统问题进行排查时,我发现了一个奇怪的现象:明明是对方断开连接,系统却报告一个查询失败的错误,但从用户角度来看请求的结果正常返回,没有任何问题。对这个现象深入分析后发现,这是一个基于epoll的连接池实现上的问题,或者说是特性。首先解释一下导致这个现象的原因。在使用epoll时,对端正常断开连接(调用close()),在服务器端会触发一个epoll事件。在低于2.6.17版本的内核...
2018-11-28 10:27:28 1468
转载 Nginx:HTTP框架是如何介入请求
考资料 <深入理解Nginx>(陶辉) Nginx事件模块博客地址:http://www.cnblogs.com/runnyu/p/4914698.html Nginx是一个事件驱动构架的Web服务器,在上次的博客中我们可以看到Nginx是如何驱动事件的处理的。本次将介绍HTTP框架是如何介入跟处理HTTP网络事件的。因为书上的思路已经足够清晰而且...
2018-11-20 17:15:07 357
转载 Linux下进程间通讯方式 - UNIX Domain Socket
概述Linux下进程通讯方式有很多,比较典型的有套接字,平时比较常用的套接字是基于TCP/IP协议的,适用于两台不同主机上两个进程间通信, 通信之前需要指定IP地址. 但是如果同一台主机上两个进程间通信用套接字,还需要指定ip地址,有点过于繁琐. 这个时候就需要用到UNIX Domain Socket, 简称UDS, UDS的优势:UDS传输不需要经过网络协议栈,不需要打包拆包等操作,只是...
2018-11-20 11:00:15 1530
转载 Nginx HTTP之请求行解析函数ngx_http_parse_request_line
Nginx的HTTP模块中使用ngx_http_parse_request_line函数来对读取的请求行进行解析,HTTP请求行的格式不是很复杂,但是要注意HTTP 0.9与1.0、1.1之间的区别;另外,作为Nginx的第一个版本,里面支持的请求方法也只有GET、POST和HEAD。/* http/ngx_http_parse.c */ /* 解析HTTP请求行 * param r:...
2018-11-16 11:27:49 1705
转载 Nginx源码阅读(ngx_http_process_request_line)
ngx_http_process_request_line()static voidngx_http_process_request_line(ngx_event_t *rev){ ssize_t n; ngx_int_t rc, rv; ngx_str_t host; ngx_conn...
2018-11-16 10:51:05 484
转载 nginx的请求接收流程(二)
在ngx_http_process_request_line函数中,解析完请求行之后,如果请求行的uri里面包含了域名部分,则将其保持在请求结构的headers_in成员的server字段,headers_in用来保存所有请求头,它的类型为ngx_http_headers_in_t:typedef struct { ngx_list_t ...
2018-11-16 10:48:06 738
转载 nginx监听事件流程
在前面的几篇文章中已经分析了master进程、work进程的初始化流程。但一直没有分析监听socket的创建流程,nginx服务器只有在创建socket, 绑定socet,监听socket执行完成后,才能处理来自客户端的连接。ngx_cycle_t结构中有一个listening成员,存放的就是所有监听socket。接下来首先分析socket内部结构的维护,不同域名的管理,然后分析什么时候把监听so...
2018-11-15 16:48:44 3073 1
转载 nginx学习十 ngx_cycle_t 、ngx_connection_t 和ngx_listening_t
最近在开始看nginx的事件模块,经常看到ngx_cycle_t、ngx_connection_t和ngx_listening_t这三个结构体,刚开始没在意,看到了就重新上网变量的意思,后来觉得不弄懂这三个结构体或者不清出其中变量的意义实在是无法看下去,因为有很多函数都涉及这三个结构体。因为ngx_listening_t存储监听有关的信息,ngx_connection_t存储连接有关的信息和读写事...
2018-11-15 14:30:34 501
转载 Nginx基本数据结构之ngx_hash_keys_arrays_t
大家看到在构建一个ngx_hash_wildcard_t的时候,需要对通配符的哪些key进行预处理。这个处理起来比较麻烦。而当有一组key,这些里面既有无通配符的key,也有包含通配符的key的时候。我们就需要构建三个hash表,一个包含普通的key的hash表,一个包含前向通配符的hash表,一个包含后向通配符的hash表(或者也可以把这三个hash表组合成一个ngx_hash_combined...
2018-11-15 13:54:07 421 1
转载 nginx源码分析之变量
nginx中的变量在nginx中的使用非常的多,正因为变量的存在,使得nginx在配置上变得非常灵活。我们知道,在nginx的配置文件中,配合变量,我们可以动态的得到我们想要的值。最常见的使用是,我们在写access_log的格式时,需要用到多很多变量。 而这些变量是如何工作的呢?我们可以输出哪些变量?我们又怎么才能输出自己想要的内容呢?当然,我们可能还想知道,如何在我们的模块里面去使用变量,...
2018-11-15 10:18:02 596
转载 nginx处理http(http变量篇)
nginx http变量定义struct ngx_http_variable_s { ngx_str_t name; //变量名 ngx_http_set_variable_pt set_handler; //设置变量函数 ngx_http_get_variable_pt get_handler; /...
2018-11-14 17:49:07 3358
转载 Nginx模块开发中使用PCRE正则表达式匹配
Nginx内部对pcre库的常用操作进行了封装. 封装的源码位于nginx/src/core/ngx_regex.c, 同时将pcre内使用的内存池更变为了Nginx的内存池. pcre_compile: Nginx封装了pcre_compile方法. 方法名为ngx_regex_compile. ngx_regex_compile方法的参数需要传入一个ngx_regex_compi...
2018-11-14 11:16:29 1743
转载 nginx源码分析(5)——监听socket初始化
在nginx源码分析(4)中,看到了nginx的事件模型,但其中没有介绍监听socket的初始化。而对于web server来说,需要通过监听socket来监听客户端的连接等。本篇将会具体介绍这方面的内容。还记得在前文介绍ngx_cycle_t结构时,它具有一个listening属性,是一个数组,存储所有监听socket,下面就来看看这些信息是什么时候添加的、以及如何初始化的。1. 重要的数据...
2018-11-13 15:04:04 483
转载 linux ngx listen的解析
listen的解析:ngx_http_core_listen方法:- 调用ngx_parse_url解析url。- 初始化ngx_http_listen_opt_t结构lsopt- 调用ngx_sock_ntop初始化lsopt.addr为点分十进制IP。- 处理listen的其他配置参数,如:backlog= ,rcvbuf=, sndbuf=, ssl, so_keepal...
2018-11-13 14:55:21 422
转载 PCRE接口pcre_fullinfo混合子模式调用结果
NGINX中使用PCRE最为正则表达式的解析接口,对编译和解析过程中的一些点进行了测试验证PCRE接口pcre_fullinfo()的描述在这个链接中有详细的描述,这里对接口的一些链接 http://mushclient.com/pcre/index.html这里描述一下命名子模式(named subpattern)和非命名子模式(numbering subpattern)混合使用的情...
2018-11-09 13:49:56 968
转载 PCRE函数简介和使用示例
PCRE是一个NFA正则引擎,不然不能提供完全与Perl一致的正则语法功能。但它同时也实现了DFA,只是满足数学意义上的正则。 PCRE提供了19个接口函数,为了简单介绍,使用PCRE内带的测试程序(pcretest.c)示例用法。1. pcre_compile 原型: #include <pcre.h>pcre *pcre_comp...
2018-11-09 13:41:38 1858
转载 nginx模块开发—HTTP初始化之listen
1、知识百科nginx作为一个高性能的HTTP服务器,网络的处理是其核心,了解网络的初始化有助于加深对nginx网络处理的了解。与网络有关的配置命令主要有两个:listen和sever_name。listen命令设置nginx监听地址,对于IP协议,这个地址就是address和port,对于UNIX域套接字协议,这个地址就是path,一条listen指令只能指定一个address或者port,...
2018-11-09 10:41:29 1297
转载 Nginx入门之两种handler函数的挂载方式
请在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。接着上次的文章,今天研究《深入理解Nginx模块开发与架构解析》一书中给出的mytest的例子,发现和 /tengine.taobao.org/book/ 一书中的例子不甚相同,尤其是在handler函数的挂在方面。函数的挂载分为两种方式:一种方式就是按处理阶段挂载;另外一种挂载方式就是按需挂载。tengine.taobao...
2018-11-07 11:17:28 640
转载 nginx phase handler的原理和选择
nginx phase handler的原理和选择PHASE HANDLER的种类nginx在接收并解析完请求行,请求头之后,就会依次调用各个phase handler。 phase handler是完成nginx主要功能的阶段。Nginx有如下11种phase,phase会依次执行。同一个phase,可能会挂载多个handler。其中斜体加粗的phase,不允许挂载用户自定义的handl...
2018-11-07 10:37:53 332
原创 CDN技术详解
第一章 引言1.1 CDN的基本概念和产生背景CDN: Content Distribute Network: 内容分发网络,或者,Content Delivery Network:内容交付网络我们常说的互联网,是广义的互联网,由两层组成:一层是以TCP/IP为代表的网络层(也就是狭义互联网概念),另一层是以万维网为代表的应用层。以TCP/IP为核心的狭义的互联网,实际上是广义互...
2018-11-02 15:39:10 3992
转载 gitlab project项目迁移
一、gitlab迁移需求由于集团要求,需要把子公司gitlab仓库迁移到集团的gitlab仓库子公司gitlab地址:git.aaa.com,集团gitlab地址:git.bbb.net二、gitlab迁移步骤1、查看目前子公司gitlab地址luoxuejun-d1:360-fang yanmin$ git remote -vorigin git@git.aaa.com:36...
2018-11-01 14:12:35 8292
GBT 28181-2016 公共安全视频监控联网系统信息传输、交换、控制技术要求.pdf
2024-03-27
video_file_format_spec_v10_1.pdf
2018-05-14
Lex和Yacc从入门到精通pdf
2017-12-25
rtmpdump-2.3_add_note
2017-09-20
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人