您的位置:首页 > 财经 > 金融 > 维护Nginx千字经验总结

维护Nginx千字经验总结

2024/12/23 10:33:54 来源:https://blog.csdn.net/2302_81578551/article/details/140136512  浏览:    关键词:维护Nginx千字经验总结

Hello , 我是恒 。
维护putty和nginx两个项目好久了,用面向底层的思路去接触
在nginx社区的收获不少,在这里谈谈我的感悟

Nginx的夺冠不是偶然

在这里插入图片描述

  1. 高速:一方面,在正常情况下,单次请求会得到更快的响应;另一方面,在高峰期(如有数以万计的并发请求),Nginx可以比其他Web服务器更快地响应请求
  2. 高扩展性:Nginx的设计极具扩展性,它完全是由多个不同功能、不同层次、不同类型且耦合度极低的模块组成。无须在意其他这种低耦合度的优秀设计,造就了Nginx庞大的第三方模块
  3. 高可靠性:Nginx的可靠性是大家有目共睹的,每个worker进程相对独立,master进程在1个worker进程出错时可以快速“拉起”新的worker子进程提供服务。
  4. 低内存:一般情况下,10000个非活跃的HTTP Keep-Alive连接在Nginx中仅消耗2.5MB的内存
  5. 热部署:master管理进程与worker工作进程的分离设计,使得Nginx能够提供热部署功能

项目风格

整体来说,代码注重简洁性异常处理,用户体验很好,变量名相当规范

  1. 系统架构以事件驱动,特别关注ngx_event_t事件和ngx_connection_t
  2. 自定义基础变量类型,如ngx_int_tngx_conf_enum_t
  3. 模块化,如ngx_event_core_module,http,SSL模块等
  4. 编译源代码与二进制代码的高度规范,项目结构清晰(有点不好的是模块目录下文件一大堆)
  5. 提交代码需要和官网人员邮箱联系,无开源仓库
  6. 协议宽松,发布代码记得加上保留所有权利部分

在这里插入图片描述

注意

  1. 函数书写注意返回的自定义字符,还有数据类型选择
  2. 编译测试准备好快速上传文件测试
  3. 单元测试,nginx测试很麻烦
  4. 开发自定义HTTP等模块后,编译到nginx里可以使用configure脚本或者修改makefile
  5. 作UML图,可以节省不少思考时间,免于逻辑混乱
  6. 提交代码到托管工具,控制本地版本,便于版本回退

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com