自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

鱼思故渊的专栏

不积跬步,无以至千里;不积小流,无以成江海

  • 博客(11)
  • 资源 (3)
  • 收藏
  • 关注

原创 nginx源码分析--nginx外部信号 命令参数

nginx命令行参数不像许多其他软件系统,Nginx 仅有几个命令行参数,完全通过配置文件来配置-c  为 Nginx 指定一个配置文件,来代替缺省的。-t 不运行,而仅仅测试配置文件。nginx 将检查配置文件的语法的正确性,并尝试打开配置文件中所引用到的文件。-v 显示 nginx 的版本。-V 显示 nginx 的版本,编译器版本和配置参数。 nginx控制信号

2014-05-28 22:20:53 1392

原创 nginx源码分析--使用GDB调试

在学习优秀的源代码时是 少不了源码的跟踪与调试,它不仅是我们解决程序bug的有效途径 也是我们理解、学习优秀源码的有效途径。本文主要介绍一些源码调试的方法,并结合Nginx 源码进行示例。1, 利用GDB调试   a,首先你应该熟悉 GDB 调试的一些基本命令(不熟悉的移步 至 用GDB调试程序 ,熟悉step,run,break,list,info,continue等命令)。

2014-05-25 21:40:13 4626

原创 nginx源码分析--使用GDB调试nginx

gdb是linux上调试应用程序的首选。在进行nginx的调试过程中,首先需要修改Makefile文件。vi objs/Makefile#增加 -O0 和 -g 选项; -O0代表不进行优化,-g代表调试模式CFLAGS =  -pipe -W -Wall -Wpointer-arith -Wno-unused-parameter -g -O0123

2014-05-25 21:37:17 3227

原创 nginx源码分析--模块分类

ngx-modulesNginx 主要的模块大致可以分为四类:handler – 协同完成客户端请求的处理、产生响应数据。比如模块, ngx_http_rewrite_module, ngx_http_log_module, ngx_http_static_module。filter – 对 handler 产生的响应数据做各种过滤处理。比如模块, ngx_http_n

2014-05-25 13:24:40 2034

原创 nginx源码分析--nginx模块解析

nginx的模块非常之多,可以认为所有代码都是以模块的形式组织,这包括核心模块和功能模块,针对不同的应用场合,并非所有的功能模块都要被用到,附录A给出的是默认configure(即简单的http服务器应用)下被连接的模块,这里虽说是模块连接,但nginx不会像apache或lighttpd那样在编译时生成so动态库而在程序执行时再进行动态加载,nginx模块源文件会在生成nginx时就直接被编译到

2014-05-25 11:42:21 1656

转载 nginx源码分析--配置结构体在内存中的分布

1、http类module的配置结构体的组织结构在Nginx中,http类的module允许创建3种配置结构体:main_conf、srv_conf、loc_conf,分别通过create_main_conf、create_srv_conf、create_loc_conf钩子创建。每种配置结构体的指针存储在对应的指针数组中,以ctx_index为数组下标。见下图所示。ngx_http_

2014-05-21 21:47:41 1441

转载 详解rsync算法--如何减少网络同步文件时的网络传输量

先看下图中的场景,客户端A和B,以及服务器server都保存了同一个文件,最初,A、B和server上的文件内容都是相同的(记为File.1)。某一时刻,B修改了文件内容,上传到SERVER上(记为File.2)。客户端A这时试图向服务器SERVER更新文件到最新内容,也就是File.1更新为File.2。上面这个场景很常见,例如现在流行的网盘。假设我有一个文件a.txt在网盘上,上班

2014-05-10 21:45:12 1055

原创 #define的高级用法

===========================================================define中的三个特殊符号:#,##,#@===========================================================#define Conn(x,y) x##y#define ToChar(x

2014-05-09 17:55:11 2745 1

原创 WARNING: Re-reading the partition table failed with error 16: Device or resource busy.

在 mkfs.ext4 /dev/sda2 格式化硬盘空间时,可能出现这样的错误。had this situation at office where I was told to re-partition an already existing partition. The situation was to get the below schema/dev/sdb1 1 3040 24

2014-05-09 15:05:18 26948

原创 VMware 下扩展linux硬盘空间

很多人在学习Nutch、Hadoop或者熟悉Linux操作系统时都会选择在VMWare上安装Linux虚拟机,而又往往不想分配给Linux虚拟机足够大的硬盘空间,这就容易导致使用Linux一段时间后,发现虚拟机上的硬盘空间不够了,此时怎么解决?有的人直接选择了重新安装Linux虚拟机,但是下一次硬盘又不够了呢,还要重新安装操作系统吗,那再下一次呢?这种方法势必会进入一个重复无聊的过程,除了增加安装

2014-05-09 15:02:25 1305

原创 epoll的原理和用法

设想一个场景:有100万用户同时与一个进程保持着TCP连接,而每一个时刻只有几十个或几百个TCP连接时活跃的(接收到TCP包),也就是说,在每一时刻,进程值需要处理这100万连接中的一小部分连接。那么,如何才能高效地处理这种场景呢?进程是否在每次询问操作系统收集有事件发生的TCP连接时,把这100万个连接告诉操作系统,然后由操作系统找出其中有事件发生的几百个连接呢?实际上,在Linux内核2.4版

2014-05-01 09:54:05 2448

nginx源码分析--带注释

nginx源码分析,分析过程中将重要的部分进行了注释,以便理解

2014-11-26

libevent-1.4.12-stable-注释版

注释了libevent中很关键的部分,很重要的接口函数。

2014-03-07

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除