![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C语言
文章平均质量分 82
未央千城
这个作者很懒,什么都没留下…
展开
-
基于nginx-rtmp-module模块实现的HTTP-FLV直播模块nginx-http-flv-module(四)
nginx-http-flv-module 的两个更新记录。原创 2023-01-12 23:52:08 · 396 阅读 · 0 评论 -
nginx-rtmp-module 的缺陷分析(四)
Nginx一般情况下都是以多进程方式(一个 master 进程和多个 worker 进程)运行的,但是nginx-rtmp-module模块对多进程方式的支持很不成熟。前面的文章提到过以多进程方式运行 Nginx 时,由于nginx-rtmp-module 本身不支持 Vhost 功能,再加上它使用 Unix domain socket(没有端口信息)转发媒体流到其他的 worker 进程,导致其他的 worker 进程无法知道转发的媒体流需要匹配的是哪个 server 配置。Nginx 从...原创 2021-01-17 00:42:20 · 514 阅读 · 0 评论 -
nginx-rtmp-module的缺陷分析(三)
VHOST(虚拟主机)就是一址多域的意思,主流的Web服务器都有这个功能,它解决了运行Web的主机在同一个IP地址情况下可以为不同域名的请求提供服务的问题。假设有两个域名A和B,在DNS上A和B都指向同一个A记录(IPv4)或者AAAA记录(IPv6),Web服务器通过不同的域名信息解析到不同的配置,从而为A和B提供不同的服务。Nginx根据请求的信息(端口,IP地址和域名)匹配到对应的配置的大概...原创 2019-05-11 22:42:03 · 2349 阅读 · 0 评论 -
基于nginx-rtmp-module模块实现的HTTP-FLV直播模块nginx-http-flv-module(三)
接上一篇《基于nginx-rtmp-module模块实现的HTTP-FLV直播模块nginx-http-flv-module(二)》内容。 项目地址:https://github.com/winshining/nginx-http-flv-module,欢迎大家下载测试,返回bug和提交PR。2018-10-28:现在nginx-htt-flv-module还...原创 2018-08-08 17:58:06 · 11156 阅读 · 21 评论 -
基于nginx-rtmp-module模块实现的HTTP-FLV直播模块nginx-http-flv-module(一)
本文后续的内容将在这里更新:《基于nginx-rtmp-module模块实现的HTTP-FLV直播模块nginx-http-flv-module(二)》。注意:下文的配置很多已经不能用了,因为现在的实现跟早期的实现相差有点大。而为了看到整个项目的变迁史,所以保留了下来,下文的更新中提到了为什么有些配置项不能再使用的原因。现在使用的配置可查找下文中的README.CN.md。另外,除非你...原创 2018-02-07 22:23:29 · 58878 阅读 · 95 评论 -
基于nginx-rtmp-module模块实现的HTTP-FLV直播模块nginx-http-flv-module(二)
由于《基于nginx-rtmp-module模块实现的HTTP-FLV直播模块nginx-http-flv-module(一)》内容已经很长,所以后续的更新将记录在这儿。非常感谢网友们的测试反馈和代码提交!项目地址:https://github.com/winshining/nginx-http-flv-module。有问题或者建议,可以加Q群:711969608详聊。目前已经有很多个...原创 2018-03-09 01:50:41 · 39487 阅读 · 39 评论 -
支持POST方式的webbench
webbench是一款轻量级的web服务器压力测试工具,目前网上能找到的最新版本是webbench-1.5,原作者已经于2004年停止维护。 webbench采用一个父进程fork出多个子进程的方式对目标服务器器发起访问,指定时间超时后,将计算的结果汇总后发送给父进程。webbench-1.5只支持GET,HEAD,TRACE和OPTION方式的测试,我在webbench-1.5原创 2017-03-16 14:24:24 · 3898 阅读 · 1 评论 -
对nginx上传文件的第三方实现nginx-upload-module的修改
nginx官方推荐的第三方上传模块nginx-upload-module在nginx-1.3.9后已经不能编译通过,究其原因是因为nginx-1.3.9废弃了ngx_http_request_body_t中的to_write成员指针。 github上有人解决了这个问题,参考https://github.com/vkholodkov/nginx-upload-mod...原创 2017-01-29 12:42:35 · 5246 阅读 · 19 评论 -
加载动态链接库的相关接口dlopen,dlsym和dlclose等
nginx从1.9.11开始,支持运行时动态加载模块了,浏览了下代码实现,在类unix系统上是用dlopen,dlsym和dlclose实现的。下面看看这几个函数的功能。 dlopen功能:打开一个动态链接库。包含头文件:#include 函数定义:void * dlopen(const char * pathname, int mode); 函数描述:原创 2017-03-14 16:55:36 · 946 阅读 · 0 评论 -
提高程序运行效率的10个简单方法
转载自:http://chuansong.me/n/1013527,有修改。 对于每一个程序员来说,程序的运行效率都是一个值得重视,并为之付出努力的问题。但是程序性能的优化也是一门复杂的学问,需要很多的知识,然而并不是每个程序员都具备这样的知识,而且论述如何优化程序提高程序运行效率的书籍也很少。但是这并不等于我们可以忽略程序的运行效率,下面就介绍一下本人积累的一些简单实用的提高程序运转载 2016-01-28 19:13:40 · 1931 阅读 · 0 评论 -
C语言中的柔性数组
前段时间在阅读nginx的源代码时,碰到一个之前从未碰到的问题,nginx定义的hash表中的元素的结构体:typedef struct { void *value; u_short len; u_char name[1];} ngx_hash_elt_t; 暂且不论各个成员的含义原创 2015-12-18 11:52:31 · 470 阅读 · 0 评论 -
为什么有了wait函数族还需要SIGCHLD信号
首先,在谈这个问题时,先说说unix中僵尸进程的含义,APUE2中如下定义:In UNIX System terminology, a process that has terminated, but whose parent has not yet waited for it, is called a zombie.也就是说,但凡是父进程没有调用wait函数获得子进程终止状态的子进程转载 2013-03-15 17:12:39 · 906 阅读 · 0 评论 -
C语言指针总结
话说学习和使用C语言也有几个年头了,可是对于它的指针着实是明白一阵糊涂一阵,今天把看到的一些指针的信息记录一下留个备案,不然以后又忘了。一 以下几个指针变量的定义有什么区别:const int *p; //(1)int const *p; //(2)int *const p; //(3)const int *const p; //(4)以前找工作的时候这题还真遇到过,不过工原创 2013-01-24 15:09:31 · 450 阅读 · 1 评论