Nginx学习笔记3--(极客时间-陶辉)
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 [remoteuser[time_local] "KaTeX parse error: Double superscript at position 37: … '̲status [requestlength:request_length:requestlength: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--(极客时间-陶辉)相关推荐
- Nginx学习笔记2--(极客时间-陶辉)
1⃣️ nginx进程结构 nginx是多进程结构模型,由master作为父进程,启动多个子进程,通过信号管理. Master进程 << 监控worker进程:CHLD(子进程终止的时候会 ...
- Nginx学习笔记4--(极客时间-陶辉)
main http { #HTTP模块upstream { ... } #HTTP模块自己的配置块split_clients {...} map {...}geo {...}server { #根据域 ...
- Nginx学习笔记5--(极客时间-陶辉)
正则表达式 ?\ 转意字符:取消原字符的特殊含义 ?()分组与取值$ ?验证正则表达式工具:pcretest 找到处理请求的server指令块 server_name指令 指令可以跟多个域名,第一个是 ...
- 【算法笔记】极客时间 算法面试通关40讲 笔记 覃超
[算法笔记]极客时间 算法面试通关40讲 覃超 [算法笔记]极客时间 算法面试通关40讲 覃超 相关链接 在leetcode 上的题号 数组.链表: (堆)栈stack.队列queue 优先队列 哈希 ...
- 安卓学习笔记汇总----极客学院安卓教学视频观看所做的笔记和自己的理解
原创内容,转载注明出处 这个笔记是看视频总结加自己的理解,可能会有差错或不对的地方,欢迎指正,大家共同进步嘛.哈哈哈.另外就是代码片段我直接截图上传了.不便之处请多见谅.如果对安卓开发有兴趣,可以加我 ...
- 极客时间和极客学院_极客奔跑
极客时间和极客学院 I'm not a natural runner. I'm reasonably fit given that I spend most of the day sat in my ...
- 极客时间计算机组成原理学习笔记
文章目录 0章-我对学计算机组成原理的思考 学习底层知识对于技术成长来说是复利行为 计算机组成原理是计算机科学的超级目录 第一章 冯诺依曼 在极客时间购买了计算机组成原理的blog专栏,尝试写一下笔记 ...
- 极客时间学习笔记-左耳听风
本文笔记全部来自<极客时间-左耳听风> 2018-09-21 弹力设计篇之"幂等性设计" Twitter 的 Snowflake 就是一个比较好用的全局 ID实现. P ...
- 极客时间《Java并发编程》学习笔记
该领域是跟着"极客时间"平台的课程<Java并发编程>入门的,讲师是王宝令.说实话,这个领域如果抱着大部头的书就啃的话,由于缺少实践很难会建立一个体系,即不知道为什 ...
最新文章
- R语言rev函数对数据对象(向量、dataframe通过行或者列)反序实战
- 配置Spring数据源c3p0与dbcp
- MySIAM与Innodb引擎
- python3是unicode还是utf-8_ASCII、Unicode、UTF-8以及Python3编码问题
- C++ primer记录
- SpringBoot添加JSP支持
- 手机上的机器学习资源!Github标星过万的吴恩达机器学习、深度学习课程笔记,《统计学习方法》代码实现!...
- ICCV 2019 | 从多视角RGB图像生成三维网格模型Pixel2Mesh++
- 高手如何应对复杂系统架构的演进
- Apache和Tomcat的区别与联系
- 【图神经网络】 漫谈图神经网络 (一)
- 领域驱动设计营销系统建模
- 什么是android原生系统版本,定制安卓和原生Android到底有哪些不同之处?彻底真相了...
- Android自定义控件 芝麻信用分雷达图
- conver(array)
- Youtube内容正在失控
- 如何禁止IE浏览器访问我的网页
- 用matplotlib高仿同花顺的K线,成交量,MACD,KDJ(一)
- 高大上:光学技术“回归”地球整出“彩虹车站”
- 360个人图书馆 轻松解除网页防复制
热门文章
- python提示jsondecodeerror是什么意思_python读取json文件时,出现JSONDecodeError问题,原因是什么,怎么解决?...
- 计算机第一课课件ppt,滇人版信息技术第1册第一单元第一课《认识计算机》课件3.ppt...
- Android 实现应用内语言切换(包括不重启应用方式)
- Optitrack下通过mavros实现offbord控制
- 左程云大厂算法刷题班——07
- 如何准备一场双11大促
- js实现判断鼠标滚轮的上下滚动
- 将android转换成ios,王者荣耀苹果转安卓数据迁移 苹果转安卓教程2020
- Mac系统快捷键大全(建议收藏)
- 如何把歌曲里的伴奏音乐提取出来,分享几个方法给大家!