
nginx
专注音视频
这个作者很懒,什么都没留下…
展开
-
nginx的配置文件解析:ngx_conf_read_token函数
该函数获取配置文件nginx.conf中的配置行或者配置块起始处的token.将这些token放在cf->args动态数组中, 并返回这些token所在配置文件中的位置. 例如一个配置行的话. 就返回NGX_OK. 配置行以分号结尾. 如果是一个配置块的起始处, 即以'{'结尾, 则返回NGX_CONF_BLOCK_START.对于token的定义为: 连续非空白字符. 单双引号包围的字符转载 2016-05-12 10:26:28 · 3009 阅读 · 0 评论 -
nginx事件机制解读
nginx事件模块机制事件模块主要包含以下文件:ngx_event.c/h 事件核心模块,以及定义所有事件模块的统一接口ngx_event_accept.c 事件连接处理ngx_event_posted.c/h 队列事件相关,主要队列事件的添加,删除,处理ngx_event_timer.c/h 定时器事件相关,定时器事件相关的执行,添加,删除...原创 2019-05-22 20:45:13 · 1251 阅读 · 0 评论 -
nginx-rtmp源码概述
github:https://github.com/arut/nginx-rtmp-module/wiki/* 点播相关*/ngx_rtmp_dash_modulengx_rtmp_mp4ngx_rtmp_mp4ngx_rtmp_mp4_module /* 主要支持rtmp MP4这块点播相关功能,支持seek操作*/ngx_rtmp_flv_module /*...原创 2017-05-19 11:38:46 · 5098 阅读 · 0 评论 -
nginx location 匹配规则
原文:https://moonbingbing.gitbooks.io/openresty-best-practices/content/ngx/nginx_local_pcre.html语法规则location [=|~|~*|^~] /uri/ { … }符号含义=开头表示精确匹配^~开头表示 uri 以某个常转载 2017-02-13 17:23:34 · 1402 阅读 · 0 评论 -
nginx的upstream目前支持5种方式的分配
1、轮询(默认) 每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。 2、weight 指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。 例如: upstream bakend { server 192.168.0.14 weight=10; server 192.168.0.15 weight=10;转载 2017-02-13 15:54:21 · 420 阅读 · 0 评论 -
nginx 0.8.x中linux aio实现
原文转载:http://blog.youkuaiyun.com/chdhust/article/details/9374337在nginx0.8.x之后加入了Linux native aio的支持,我们知道在linux下有两种aio,一种是glibc实现的aio,这个比较烂,它是直接在用户空间用pthread进行模拟的。还有一种就是内核实现的aio,这些系统调用是以io_xxx开始的,而在ngin转载 2017-02-13 15:02:20 · 636 阅读 · 0 评论 -
nginx之rtmp模块引用计数设计
对于没有垃圾自动回收机制的语言(如C/C++)来说,引用计数提供了一种简洁高效的内存管理方法,nginx-rtmp模块为方便管理内存,在给ngx_chain_t分配内存的时候,多分配了sizeof(uint32_t)类型的字节数,用来方便管理内存在ngx_rtmp_shared.c文件中#define NGX_RTMP_REFCOUNT_TYPE uint3...原创 2017-02-09 15:37:53 · 1084 阅读 · 1 评论 -
Nginx学习之十-超时管理(定时器事件)
Nginx事件管理主要是网络事件和定时器事件。下面介绍定时器事件管理,即超时管理。为什么要进行超时管理Nginx有必要对可能发生超时的事件进行统一管理,并在事件超时时作出相应的处理,比如回收资源,返回错误等。举例来说,当客户端对nginx发出请求连接后,nginx机会accept()并建立对应的连接对象、读取额护短请求的头部信息。而读取这个头部信息显然是要在转载 2016-11-24 18:44:20 · 1304 阅读 · 0 评论 -
nginx的时间管理机制
熟悉nginx的时间机制,主要从以下几点1)Linux系统时间相关函数2)nginx是怎么通过缓存时间变量减少gettimeofday系统调用,从而提高效率3)什么时候,怎么更新时间缓存的?1)Linux系统时间相关的库函数介绍char *asctime(const struct tm* timeptr); //将结构中的信息转换为真实世界的时间,以字符串的形式原创 2016-11-18 11:49:04 · 4260 阅读 · 0 评论 -
ngx_linux_sendfile_chain
本函数功能:发送数据(两种发送方式内存发送和文件发送)内存发送和文件发送的区别:(writev和sendfile)1、文件发送的效率相对内存发送效率要高很多,效率主要高在少了内核层到用户态的拷贝,用户态到内核态的拷贝。直接在磁盘将数据从网卡发送出去2、通常的情况下,程序可能会在多个地方产生不同的bufferwritev是读取多个不连续的buffer然后集中写入。大并发服务器的时候这个效率还是很高的原创 2016-11-03 16:12:29 · 1065 阅读 · 0 评论 -
nginx内存管理--大块内存空间申请 ngx_palloc_large
这里写代码片#if !NGX_DEBUG_POOLstatic void *ngx_palloc_large(ngx_pool_t *pool, size_t size){ void *p; ngx_uint_t n; ngx_pool_large_t *large; p = ngx_alloc(size, pool-原创 2016-05-26 09:12:57 · 1593 阅读 · 1 评论 -
nginx中hash表的设计
hash表的整体设计要素先回顾一下hash表的设计的几个要素:hash函数的构造-散列函数冲突处理方式装填因子大小的选择。装填因子 a=n / m。其中m为hash表的bucket个数;(n为关键字的个数。装填因子越大,产生hash冲突就严重。)hash函数构造方法经典的字符串hash构造算法主要以下几个:BKDRHashAPHashDJBHashJSHashRSHa...原创 2019-07-12 11:48:23 · 388 阅读 · 1 评论