1.nginx模块
	首先nginx和apache最大的不同就是nginx的模块不能够动态添加,需要在编译时,指定要添加的模块路径,与nginx源码一起编译。
	nginx模块的处理流程:
	a.客户端发送http请求到nginx服务器
	b.nginx基于配置文件中的位置选择一个合适的处理模块
	c.负载均衡模块选择一台后端服务器(反向代理情况下)
	d.处理模块进行处理并把输出缓冲放到第一个过滤模块上
	e.第一个过滤模块处理后输出给第二个过滤模块
	f.然后第二个过滤模块又到第三个过滤模块
	g.第N个过滤模块。。。
	h.处理结果发给客户端
	2.nginx模块编写
	a、创建模块文件夹
b、创建模块配置文件
?c、创建模块主文件
?写入如下内容:
?
	写的helloworld模块 
	  
	 
	d、下载nginx源码包,我下载的是nginx-1.0.13.tar.gz
	这里注意在编译helloworld模块前首先确认,nginx是否可以独立编译成功,是否安装了所需的所有模块。
	与helloworld模块一起编译nginx:
e、配置nginx.conf
?
	f、启动nginx,访问http://localhost/hello ,可以看到编写的helloworld模块输出的文字。
	 
	3.hello world模块分析
	a.ngx_command_t函数用于定义包含模块指令的静态数组ngx_http_hello_world_commands
	b.static u_char ngx_hello_world[] ="hello world" 则是输出到屏幕的字符串。
	c.ngx_http_module_t用来定义结构体ngx_http_hello_world_module_ctx:
d.ngx_module_t定义结构体ngx_http_hello_world_module
?e.处理函数,ngx_http_hello_world_handler,也是hello world 模块的核心部分。
?helloworld模块里面涉及最重要的数据就是ngx_module_t指针数组,这个指针数组包含了当前编译版本支持的所有模块,这个指针数组定义实在自动脚本生成的objs/ngx_modules.c中,如下:
?
这里只有每个模块变量的声明,并且每个模块的定义都包含在自己的模块文件当中,比如ngx_core_module定义在src/core/nginx.c中:
?
	是不是跟helloworld里面非常相似了,没错,他们都是模块,唯一的不同点就是helloworld是你另外加进去的。
	到现在位置也只是初探nginx的模块,最后提一张别人画的nginx的模块图,有助于接下来的学习。
