nginx官方文档
nginx中文文档

nginx模块

?nginx源码的/objs/ngx_modules.c中*ngx_modules[]数组代表了编译进nginx的模块。

nginx连接池


?每个worker进程都有一个独立的ngx_cycle_t这样的一个数据结构
?connections数组:连接池

  • 官方文档Core_functionality的worker_connections
Syntax:  worker_connections number;
Default:    worker_connections 512;
Context:    events

默认512个数组,nginx一般是要处理万,十万,百万级,一般都要修改。
这些连接不止包括客户端的连接,也包括面向服务器的,所以做反向代理的时候等于消耗两个连接。

? 每个连接默认对应一个读事件一个写事件。每个连接大概占用96+232字节,worker_connections配置的越大,初始化的时候预分配的内存就越大。

  • ngx_event_handler_pt handler : 这是一个回调方法,很多第三方模块会把它设置为自己的实现
  • ngx_rbtree_node_t timer : 读写事件超时
  • ngx_queue_t queue : 队列
  • bytes_sent
    --------------------------------以下是nginx.conf--------------------------------
    log_format main ‘$remote_addr - remoteuser[remote_user [remoteu​ser[time_local] "KaTeX parse error: Double superscript at position 37: … '̲status [requestlength:request_length:requestl​ength:bytes_sent “KaTeX parse error: Double superscript at position 42: … '̲"http_user_agent” “$http_x_forwarded_for”’;
    --------------------------------以下是log---------------------------------------
    127.0.0.1 - - [22/Apr/2019:20:35:42 +0800] “GET /index2.html HTTP/1.1” 200 [465:675 “http://localhost:90/” “Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.1 Safari/605.1.15” "-

内存池

提前分配好一些内存

连接内存池

Syntax:  connection_pool_size size;
Default:    connection_pool_size 256|512;   #字节,每个连接预分配内存大小,可以分配更大。
Context:    http, server

请求内存池

Syntax:  request_pool_size size;
Default:    request_pool_size 4k;   #包括head,url
Context:    http, server
  • 连接内存池:当运行一个tcp连接的时候上面可能会运行多个HTTP请求(keepalive),连接没有关闭,有些内存为连接分配一次就够,连接不关闭就不需要释放。
  • 请求内存池:每个HTTP请求通常会分配4K的内存。
    ?减少内存碎片
    ?提前预分配了空间,可以减少分配内存的次数。

Nginx学习笔记3--(极客时间-陶辉)相关推荐

  1. Nginx学习笔记2--(极客时间-陶辉)

    1⃣️ nginx进程结构 nginx是多进程结构模型,由master作为父进程,启动多个子进程,通过信号管理. Master进程 << 监控worker进程:CHLD(子进程终止的时候会 ...

  2. Nginx学习笔记4--(极客时间-陶辉)

    main http { #HTTP模块upstream { ... } #HTTP模块自己的配置块split_clients {...} map {...}geo {...}server { #根据域 ...

  3. Nginx学习笔记5--(极客时间-陶辉)

    正则表达式 ?\ 转意字符:取消原字符的特殊含义 ?()分组与取值$ ?验证正则表达式工具:pcretest 找到处理请求的server指令块 server_name指令 指令可以跟多个域名,第一个是 ...

  4. 【算法笔记】极客时间 算法面试通关40讲 笔记  覃超

    [算法笔记]极客时间 算法面试通关40讲 覃超 [算法笔记]极客时间 算法面试通关40讲 覃超 相关链接 在leetcode 上的题号 数组.链表: (堆)栈stack.队列queue 优先队列 哈希 ...

  5. 安卓学习笔记汇总----极客学院安卓教学视频观看所做的笔记和自己的理解

    原创内容,转载注明出处 这个笔记是看视频总结加自己的理解,可能会有差错或不对的地方,欢迎指正,大家共同进步嘛.哈哈哈.另外就是代码片段我直接截图上传了.不便之处请多见谅.如果对安卓开发有兴趣,可以加我 ...

  6. 极客时间和极客学院_极客奔跑

    极客时间和极客学院 I'm not a natural runner. I'm reasonably fit given that I spend most of the day sat in my ...

  7. 极客时间计算机组成原理学习笔记

    文章目录 0章-我对学计算机组成原理的思考 学习底层知识对于技术成长来说是复利行为 计算机组成原理是计算机科学的超级目录 第一章 冯诺依曼 在极客时间购买了计算机组成原理的blog专栏,尝试写一下笔记 ...

  8. 极客时间学习笔记-左耳听风

    本文笔记全部来自<极客时间-左耳听风> 2018-09-21 弹力设计篇之"幂等性设计" Twitter 的 Snowflake 就是一个比较好用的全局 ID实现. P ...

  9. 极客时间《Java并发编程》学习笔记

      该领域是跟着"极客时间"平台的课程<Java并发编程>入门的,讲师是王宝令.说实话,这个领域如果抱着大部头的书就啃的话,由于缺少实践很难会建立一个体系,即不知道为什 ...

最新文章

  1. R语言rev函数对数据对象(向量、dataframe通过行或者列)反序实战
  2. 配置Spring数据源c3p0与dbcp
  3. MySIAM与Innodb引擎
  4. python3是unicode还是utf-8_ASCII、Unicode、UTF-8以及Python3编码问题
  5. C++ primer记录
  6. SpringBoot添加JSP支持
  7. 手机上的机器学习资源!Github标星过万的吴恩达机器学习、深度学习课程笔记,《统计学习方法》代码实现!...
  8. ICCV 2019 | 从多视角RGB图像生成三维网格模型Pixel2Mesh++
  9. 高手如何应对复杂系统架构的演进
  10. Apache和Tomcat的区别与联系
  11. 【图神经网络】 漫谈图神经网络 (一)
  12. 领域驱动设计营销系统建模
  13. 什么是android原生系统版本,定制安卓和原生Android到底有哪些不同之处?彻底真相了...
  14. Android自定义控件 芝麻信用分雷达图
  15. conver(array)
  16. Youtube内容正在失控
  17. 如何禁止IE浏览器访问我的网页
  18. 用matplotlib高仿同花顺的K线,成交量,MACD,KDJ(一)
  19. 高大上:光学技术“回归”地球整出“彩虹车站”
  20. 360个人图书馆 轻松解除网页防复制

热门文章

  1. python提示jsondecodeerror是什么意思_python读取json文件时,出现JSONDecodeError问题,原因是什么,怎么解决?...
  2. 计算机第一课课件ppt,滇人版信息技术第1册第一单元第一课《认识计算机》课件3.ppt...
  3. Android 实现应用内语言切换(包括不重启应用方式)
  4. Optitrack下通过mavros实现offbord控制
  5. 左程云大厂算法刷题班——07
  6. 如何准备一场双11大促
  7. js实现判断鼠标滚轮的上下滚动
  8. 将android转换成ios,王者荣耀苹果转安卓数据迁移 苹果转安卓教程2020
  9. Mac系统快捷键大全(建议收藏)
  10. 如何把歌曲里的伴奏音乐提取出来,分享几个方法给大家!