Nginx源码分析—nginx的配置
Nginx都是一个master进程来管理多个worker进程。Worker进程的数量与服务器上的CPU核心数相等。Master是管理worker,接受外部信号,worker进程之间通过共享内存、原子操作实现通信和同步。
任意一个worker进程出现错误从而导致coredump时,master进程会立刻启动新的worker进程继续服务。
不同worker进...
分类:
其他好文 时间:
2014-11-26 16:40:01
阅读次数:
167
Nginx源码分析—定时器事件
对于每一个进程都有一个事件缓存,对于worker进程而言,除了nginx启动时更显一次时间外,任何更新时间的操作都只能由ngx_epoll_process_events方法执行。在此方法中,当flags参数中有NGX_UPDATE_TIME标志位,或者ngx_event_timer_alarm标志位为1时,就会调用ngx_time_update方法更新缓存时间。
...
分类:
其他好文 时间:
2014-11-26 16:38:35
阅读次数:
163
Nginx源码分析—过期事件和惊群事件的处理
过期事件:每个事件的date域都是一个结构体ngx_connection_t结构体,表示对应的连接。对于一个结构体struct epoll_event 中的data.ptr成员存储的是ngx_connection_t连接,这里使用Instance标志位来标识,下面就配合ngx_epoll_process_events方法说明他的用法。
Data.p...
分类:
其他好文 时间:
2014-11-26 16:38:07
阅读次数:
165
Nginx源码分析—HTTP框架执行流程
HTTP框架动态执行中的大概流程:先与客户端建立TCP连接,接收HTTP请求行、头部并解析出他们的意义,再根据nginx.conf配置文件找到一些HTTP模块,使其一次合作者处理这个请求。
为了精确地控制超时,还需要把读写事件放置到定时器中。
通过事件模块提东的ngx_handle_read_ev...
分类:
Web程序 时间:
2014-11-26 16:37:46
阅读次数:
133
Nginx源码分析—架构设计思想
我任务nginx的源码可以分为三个部分,一个是在ngx_init_cycle之前,这个也算是为了重新启动nginx而准备的代码,比如说在这个时候可以接受外部的信号,也可以保存传递的参数,等等,当然在以后的函数中也考虑了是否正在重启nginx。
至于ngx_init_cycle这个函数,是一个很庞大的函数,在这个函数中可以看到调用了各个模块的钩...
分类:
其他好文 时间:
2014-11-26 16:37:00
阅读次数:
164
/*
* up_wp_page()函数用于解除物理页的共享状态,同时给发生写时复制的进程提供一页新的
* 物理页,新物理页是之前共享页的数据相同的拷贝。
* table_entry是共享物理页的地址的指针,即页表实际地址+表内偏移地址
*/
void un_wp_page(unsigned long * table_entry)
{
unsigned long old_page,new_...
分类:
系统相关 时间:
2014-11-26 11:29:37
阅读次数:
325
1. 执行Bootstrap类的static代码块, 初始化Bootstrap的catalinaHomeFile属性和catalinaBaseFile属性, 默认情况下值都为tomcat的安装目录. 关于这两个属性, 说明如下. =========================================...
分类:
其他好文 时间:
2014-11-25 23:58:09
阅读次数:
491
前言很多运维类书籍或文章仅从系统管理者的角度讲解了grub的安装以及使用,本篇博文则从gnugrub2.00的源码入手,从开发者,以及系统底层运行机制的角度,分析grub是如何作为跨平台的“全面统一的引导加载程序”,来引导操作系统,加载Linux内核的过程等等,部分内容参考了《深..
分类:
其他好文 时间:
2014-11-25 19:05:36
阅读次数:
1361
std::move和std::forward是C++0x中新增的标准库函数,分别用于实现移动语义和完美转发。
下面让我们分析一下这两个函数在gcc4.6中的具体实现。
预备知识
引用折叠规则:
X& + & => X&
X&& + & => X&
X& + && => X&
X&& + && => X&&
函数模板参数推导规则(右值引用参数部分):
当函数模板的模板参数为...
分类:
编程语言 时间:
2014-11-25 18:30:49
阅读次数:
1005
<?php
/*
*---------------------------------------------------------------
* APPLICATION ENVIRONMENT
*---------------------------------------------------------------
*
*
* //配置项目运行的环境,该配...
分类:
Web程序 时间:
2014-11-25 00:27:17
阅读次数:
236