维护Nginx千字经验总结

news2024/11/20 13:32:52

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. 提交代码到托管工具,控制本地版本,便于版本回退

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1887341.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

1996-2023年各省财政收支数据(无缺失)(地方财政一般预算收入、地方财政一般预算支出)

1996-2023年各省财政收支数据(无缺失)(地方财政一般预算收入、地方财政一般预算支出) 1、时间:1996-2023年 2、来源:国家统计局、统计年鉴、 3、指标:地方财政一般预算收入、地方财政一般预算…

51单片机第23步_定时器1工作在模式0(13位定时器)

重点学习51单片机定时器1工作在模式0的应用。 在51单片机中,定时器1工作在模式0,它和定时器0一样,TL1占低5位,TH1占高8位,合计13位,也是向上计数。 1、定时器1工作在模式0 1)、定时器1工作在模式0的框图…

SUPERVIVE无法联机、联机失败、联机报错的解决办法分享

SUPERVIVE是一款战术竞技游戏,核心玩法为多人大逃杀,40名玩家可以自愿或随机组成2或4人小分队,空降进入末日地图,一边苟着收集资源,一边武装自己,在生存区不断首夺的同时,努力战到最后&#xff…

pycharm中新建的临时python文件存放在哪里?

在pycharm中建立的临时python文件,从哪里可以找到呢? 1.我们打开cmd窗口,进入根目录,用dos命令“dir scratch*.py/a/s”进行查找,发现这些临时文件存放在Roaming\JetBrains\PyCharmCE2022.2\scratches 的目录里面 2.…

2Python的Pandas:读取数据

1.读取Excel文件 1.1.读取数据 import pandas as pd# Excel 文件的 URL 或本地路径 url "https://www.gairuo.com/file/data/dataset/team.xlsx"# 使用 Pandas 的 read_excel 函数读取数据 try:df pd.read_excel(url)print(df.head()) # 打印 DataFrame 的前几行…

在 Mac 上使用 本地 LLM 文本终结

我们可使用本地大型语言模型,如Mistral、Llama等,来给文本做总结,相比在线的 Kimi ,ChatGPT, 我们不用担心数据泄露,因为整个操作都是在本地电脑完成的。 我们用 ollama 举例 首先安装 ollama https://ol…

观测云赋能「阿里云飞天企业版」,打造全方位监控观测解决方案

近日,观测云成功通过了「阿里云飞天企业版」的生态集成认证测试,并荣获阿里云颁发的产品生态集成认证证书。作为监控观测领域的领军者,观测云一直专注于提供统一的数据视角,助力用户构建起全球范围内的端到端全链路可观测服务。此…

荣耀大横评,睿蓝7-450荣耀版卷出来的性价比之王

手握11万左右预算,如何在市场内选出一辆合适自己的车?荣耀版车型无疑是当下的最佳答案。在众多荣耀版车型中,比亚迪宋PLUS荣耀版EV520km领先型(后统称宋PLUS荣耀版)、比亚迪元PLUS荣耀版430km领先型(后统称元PLUS荣耀版)、比亚迪海豚PLUS荣耀版420km时尚版(后统称海豚荣耀版)、…

YOLO-V2

一、V2版本细节升级 1、YOLO-V2: 更快!更强 1.1 做的改进内容 1. YOLO-V2-Batch Normalization V2版本舍弃Dropout,卷积后每一层全部加入Batch Normalization网络的每一层的输入都做了归一化,收敛相对更容易经过Batch Norma…

Python协作运动机器人刚体力学解耦模型

🎯要点 🎯腿式或固定式机器人模型 | 🎯网格、点云和体素网格碰撞检测 | 🎯正反向运动学和动力学 | 🎯机器人刚体力学计算 | 🎯编辑参考系姿势和路径 | 🎯软件接口实体机器人模拟 | &#x1f3a…

MyBatis-plus这么好用,不允许还有人不会

你好呀,我是 javapub. 做 Java 的同学都会用到的三件套,Spring、SpringMV、MyBatis。但是由于使用起来配置较多,依赖冲突频发。所有,各路大佬又在这上边做了包装,像我们常用的 SpringBoot、MyBatisPlus。 基于当前要…

2024年7月2日 (周二) 叶子游戏新闻

老板键工具来唤去: 它可以为常用程序自定义快捷键,实现一键唤起、一键隐藏的 Windows 工具,并且支持窗口动态绑定快捷键(无需设置自动实现)。 卸载工具 HiBitUninstaller: Windows上的软件卸载工具 经典名作30周年新篇《恐怖惊魂夜…

谷歌网站SEO服务有哪些?

Seo其实说来说去就包含三样,网站本身技术优化,内容以及外链,而这三样里,网站的技术优化是前提本身,确保网站符合谷歌搜索规范,包括调整网站的结构、速度和移动设备兼容性,以提高用户体验和搜索引…

【C语言】const 关键字

在C语言中,const关键字用于定义常量,使得变量的值在其声明之后无法被修改。这可以帮助防止意外修改数据,提高代码的安全性和可读性。以下是有关const关键字的一些详细说明: 基本用法 const int max_value 100;在这个例子中&…

CM-UNet: Hybrid CNN-Mamba UNet for Remote Sensing Image Semantic Segmentation

论文:CM-UNet: Hybrid :CNN-Mamba UNet for Remote Sensing Image Semantic Segmentation 代码:https://github.com/XiaoBuL/CM-UNet Abstrcat: 由于大规模图像尺寸和对象变化,当前基于 CNN 和 Transformer 的遥感图像语义分割方…

[数据库原理]关系范式总结(自用)

如有错误,欢迎指正!!! 有一些题目我放在pdf里面了

this.$refs[tab.$attrs.id].scrollIntoView is not a function

打印this.$refs[tab.$attrs.id].scrollIntoView 在控制台看到的是一个undefined 是因为this.$refs[tab.$attrs.id] 不是一个dom 是一个vuecomponent 如图所示: 所以我用的这个document.querySelector(.${tab.$attrs.id})获取dom document.querySelector(.${tab.$attrs.id})…

海思SS928/SD3403开发笔记4——u盘挂载

首先一定要将u盘格式化成fat32。 挂载 mkdir /mnt/usb mount /dev/sda1 /mnt/usb成功示意图: 取消挂载 umount /mnt/usb

智谱AI: ChatGLM API的使用

一、获取API 1、打开网址:智谱AI开放平台 注册账号登录 2、登录,查看API key (注册后赠送100万token,实名认证后多赠送400万, 有效期一个) 二、安装及调用 安装质谱SDK pip install zhipuai调用方式 流式调用 from zhipuai import ZhipuA…

Dify自定义工具例子

1.天气(JSON) {"openapi": "3.1.0","info": {"title": "Get weather data","description": "Retrieves current weather data for a location.","version": "v1…