nginx
文章平均质量分 84
silent狼
喜欢安静的思考...
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
epoll的原理
缘由昨夜再把深入理解nginx中epoll的部分读了一遍,这次主要关注epoll的原理。这篇博客也是用自己的话转述了书中的内容。预想场景假设我们的服务器端的进程同时与100万个用户保持着TCP的链接,但是这100万个用户中并不是所有的用户都在发送请求。那么也就是说只有几十个用户是发送来了请求的。所以,实际上我们的进程只是处理这100万个链接中的几十个。为了接受这些响应,我们首先要做原创 2014-04-30 14:56:54 · 1118 阅读 · 0 评论 -
nginx:从配置文件读值 到 代码中的变量
缘由这个过程原来是我在深入剖析nginx里面读到过,但是没有总结,那么后来我一直对这块有点印象。今天突然觉得这个看这个结构体:struct ngx_conf_s { char *name; ngx_array_t *args; ngx_cycle_t *cycle;原创 2014-04-27 18:00:08 · 1818 阅读 · 0 评论 -
ngnix:初步使用log日志系统打印ngx_conf_parse解析的配置项
缘由这次主要是由昨天的那篇博客啊,书上说ngx_conf_s的成员 name是什么名字,但是我在用ddd调试的时候,却没有发现里面存的有什么值。今天就打算用nginx自带的日志系统来验证一下。实际证明我是对的,对于我这份配置文件来说name确实什么值都没有。配置文件先看一下我的配置文件:master_process off; daemon off; error_lo原创 2014-04-28 19:49:23 · 994 阅读 · 0 评论 -
ngix:subrequest 的 用途 和 使用流程
缘由今天阅读了深入理解nginx的第五章的后半部分,主要讲的就是subrequest,功能我觉得主要就是两点具备类似代理的功能,就是把一个请求转发到上游服务器,但是与upstream的不同之处主要在于upstream只能把上游服务器的内容原封不动的返还给客户端。但是subrequest可以把上游服务器的相应在代理服务器这边做一定的修改之后再返回给上游服务器由substream可以将一个原创 2014-04-12 09:18:54 · 1371 阅读 · 0 评论 -
nginx:单独抽取nginx的红黑树源码以及运行例子
缘由最近一段时间想了想红黑树,理解了一下原理之内的,算法导论上已经讲的非常好了,我就不多废话了,所以这是我从nginx中抽取的红黑树的源码,共三分文件,能够单独运行。除了nginx中用于写的红黑树的两份代码以外,主要是就运行实例的main函数文件。红黑树的好处两附图说清楚,如果我们有序插入1、6、8、11、13、15、17、22、25、27普通二叉查找树的话,会形成下图一样的树:原创 2014-04-25 16:27:23 · 934 阅读 · 0 评论 -
nginx:“端口”之行
缘由今天我又读了一遍 深入理解nginx的第八章。觉得又有了更深理解。不过由此带来了一个问题,书上既然说了ngx_listening_s的结构体是用于代表一个监听端口的。那么里面怎么没有一个int类型的成员代表端口呢?由这个问题,引来了我一系列探索和思考。基础知识刚开始的时候还有点忘了,就是端口不是单独列出来的,是和结构体sockaddr和sockaddr_in有着密切的关系。原创 2014-04-24 20:21:36 · 786 阅读 · 0 评论 -
nginx:代理服务器(涉及upstream)的例子
缘由今天阅读 深入理解nginx 的第五章,前半部分讲解了upstream的问题,并且指导完成了一个例子。upstream先来回答upstream拿来做什么:客户端请求nginx,nginx将请求转发给第三方服务器(也称上游服务器),第三方服务器返回响应,nginx将响应转发给客户端。这时,nginx作为了一个代理服务器。一般,我们只是把第三方服务器的内容原封不动的返回给客户端原创 2014-04-10 22:35:33 · 2957 阅读 · 0 评论 -
nginx与Apache处理HTTP事务不同:以餐厅服务为例 (涉及nginx的上下文结构)
缘由今天读到 深入理解nginx的第四章,读到这个例子的时候非常棒,感觉非常有利于理解两个非常出名的服务器为什么不同。也可以说是为什么nginx就能支持高并发。背景我们去餐厅吃饭,一般都步骤都是:找到座位点餐用餐付钱走人如果把web服务器当作餐厅,那么一个请求当作一个客人一个worker进程当作一个服务员。那么,让我们来看看两款web服务器分别是如何为它们的原创 2014-04-09 13:44:31 · 1244 阅读 · 0 评论 -
nginx:模块的理解以及划分
缘由看了深入理解nginx 第八章 nginx基础架构之后,对整个nginx的模块还是有了比较清晰的认识。所以在这里总结一下。首先要明确的就是:模块化设计是面向过程设计中常用的一种手段。太抽象我现在的级别还是领悟不了,我看了一下百度百科,随便摘两句话:模块化是指解决一个复杂问题时自顶向下逐层把系统划分成若干模块的过程,有多种属性,分别反映其内部特性。模块化用来分割,组织和打包软件。原创 2014-04-23 15:45:20 · 1364 阅读 · 0 评论 -
nginx:让nginx运行自己的编写第三方模块
缘由今天阅读 深入理解ngnix 的第三章,需要完成一个第三方模块,然后添加到nginx里面去,然后我在对应的网页访问的时候就可以直接调用我写的第三方模块,这个第三方模块只是发浏览器发了一个hello world而已。流程1、P72:建一个ngx_http_mytest_module.c的文件,写我的新添加的模块的代码,因为还是比较简单的,所以用一个文件就可以了。2、P79原创 2014-04-08 23:23:46 · 1642 阅读 · 1 评论 -
nginx源码学习之ngx_queue:双向链表
缘由今天开始看书深入理解Nginx。所以本博客所述的内容大多数都是此书的内容,算作是一种笔记。ngx_queuengx_queue是一个双向链表,更多的内容请看深入理解Nginx一书的217页。其功能和函数一共由两个文件来完成。ngx_queue.cngx_queue.h该双向链表完成了常见的功能(在下面的ngx_queue.h文件中可以看到,而在下面的ngx_原创 2014-03-26 19:57:49 · 807 阅读 · 0 评论 -
linux内核 与 web服务器 相关的某些参数(sysctl)
缘由昨天,深入理解ng原创 2014-04-06 14:07:31 · 1194 阅读 · 0 评论 -
ngnix:slab机制
http://www.cnblogs.com/doop-ymc/p/3412572.htmlhttp://www.dcshi.com/?cat=19http://blog.youkuaiyun.com/qifengzou/article/details/11678115原创 2014-04-05 21:43:53 · 808 阅读 · 0 评论 -
ngnix:共享内存
总览简要描述ngnix利用共享内存的流程。原创 2014-04-04 12:54:46 · 902 阅读 · 0 评论 -
ngnix之内存池:结构体简析 和 函数功能总览
感悟感悟有两点,第一点就是别人已经把这个内存池总结的非常好了,我只是在继续炒冷饭而已,但是我还觉得该写点什么,我打算写结构体的含义和相关函数的功能。源码文件:ngx_palloc.c和ngx_palloc.h更多复杂、详细的内容建议您参考:Nginx源码剖析之内存池,与内存管理深入剖析nginx P65第二点就是如何看源码,昨日不知在哪里看源码的经验,需要三步:原创 2014-04-03 12:07:26 · 825 阅读 · 0 评论 -
nginx 源码:动态数组
动态数组这玩意吧,应该最简单的一个。动态数组有以下特征:访问速度快。允许元素的个数具体不确定性。也就说是可以动态扩充数组在ngnix中,动态数组的内存是通过向ngnix的内存池内申请的,所以动态扩充数组的时候特别方便,由ngnix统一管理。动态数组的结构和方法动态数组的结构struct ngx_array_s { void *elts;原创 2014-04-02 21:59:41 · 779 阅读 · 0 评论 -
ngnix hash的两个关键 : 预计算hash的元素个数 和 通配符存在时的建表
缘由说实话,代码也单步调试着看完了,本来打算详细的写写,结果网上资料太丰富,想想了自己写的也写不出什么新意,就算这次主要讲的两点也是炒冷饭而已。但是这两点确实是在认为在这次ngnix的hash中学到的最重要的东西。主要参考了:深入理解ngnix:对hash的实现原理将的非常清楚,非常有条理深入剖析ngnix:讲述ngnix会预先计算这个hash表中会存在多少元素,这样可以提原创 2014-04-02 19:43:27 · 1191 阅读 · 0 评论 -
nginx:试图理清 nginx 发回给 浏览器 响应包
缘由今天的思路比较杂,随意翻了翻 深入理解nginx,看了挺多的内容。后来就开始做实验。我本来想看看ngx_cycle_t 的成员 connections 和 free_connections 如何把连接池串起来了。后来查来查去就直接查到 nginx怎么发送 响应包的问题了。实验过程首先浏览器要试图去连接nginx,那么就需呀发送请求包给nginx,但是每次都需要将浏览器的缓存清空原创 2014-04-29 19:29:17 · 836 阅读 · 0 评论 -
nginx:将自己编写HTTP过滤模块融入nginx时遇到的问题
缘由今天看了 深入理解Nginx 第6章,看懂了书之后,利用了书上的代码自己测试了一下。测试的过程居然有点艰难,虽然最后还是完成了功能。但是还是暴露出两点:自己的基础知识不扎实书中有些部分不严谨当然,现在发现这些是值得庆幸的,因为这使的我能够早日学到更多知识。所以这篇博客主要是我在阅读完成第六章之后,做实验过程中遇到的问题,而不是将http过滤模块讲清楚。实验过程从原创 2014-04-21 19:16:28 · 1685 阅读 · 1 评论
分享