![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
开源星球
文章平均质量分 88
pro-hongzhidao
NGINX官方团队成员
展开
-
开源星球:设计 Utopia 框架,彻底解决 nginx reload 问题
因此,配置应定期更新>到每个进程内。我们的设计原则是用Lua只写业务逻辑,算法和数据结构等跟性能有关的,用C去实现,这些隐藏在nginx lua c模块里。举个例子,有些开发者用Lua实现json的解析,我们会将这种常见的功能放在 C模块里,然后提供接口来使用,比如ngx.json_encode,ngx.json_decode。所有的Lua代码都运行在NGINX进程里,配置更新进进程里的Lua模块后,Lua代码就能正常使用配置,而不用做类似nginx reload这样的操作,以达到热加载的效果。原创 2023-08-18 21:59:05 · 94 阅读 · 1 评论 -
开源星球:开发解决nginx reload问题的框架
将配置保存在共享内存,所有的进程都可以访问它,而且是只读的方式,也不用锁,这是可行的。然而在现在的视频时代,长连接尤其的多,一个长视频就是一个长连接,几十分钟的很常见,这意味着旧进程会继续占着很长时间,进程是个比较消耗资源的东西,尤其内存。在不改变源码的方式下是不可能更新NGINX配置的,比如location这种配置,我们做的是另一个思路,设计一个全新的配置,能让它做跟NGINX同样的功能,可能没法100%完全相同,但尽量满足自己的业务。这种对源码入侵比较大,缺点就是要同步官方的源码,有维护上的麻烦。原创 2023-08-13 14:12:40 · 212 阅读 · 1 评论 -
开源星球:一个真实的开源开发案例
本文目的是通过分享一个真实的开源案例,让感兴趣的开发者了解一个功能怎么从零合并到GitHub项目。原创 2023-08-07 14:13:53 · 98 阅读 · 0 评论 -
开源星球:成为优秀开源开发者
我们需要找一个脚本语言,个人认为Lua是最适合的C胶水语言,也就是说跟C交互最好,从开发门槛和性能综合考虑,Lua 5.4是最适合的。除了NJS,Unit也是我感兴趣的项目,这也是Igor写的项目,代码质量不在话下,甚至设计上更好。它没有明确目标,纯粹打造一个开源项目的练兵场,但是代码会跟NGINX社区的标准一样,还有技术交流。我想从零开始打造一个项目,见证它的成长应该是件很有意思的事情,也是参与者进步最快的方式之一。学英语得有个英语的环境,可能是工作环境是讲英语的,也有可能生活在英语的环境里。原创 2023-08-07 14:11:54 · 54 阅读 · 0 评论