- 博客(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 2449
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人