11.4 ngx_ pool_s结构体

Nginx对内存的管理是通过自身实现的内存池结构来完成的。内存池实际上是一个链表结构,由多块小的内存块通过链表的形式组成。ngx_pool_s结构体用来描述内存池的管理分配。结构体中可以包括内存数据块、大体积内存数据块指针、用于内存回收的cleanup指针等重要链表结构。可以在/nginx/src/core/ngx_palloc.h中...

       时间 : 2016-03-29| 栏目 : nginx专题| 浏览 : 674 次| 暂无评论 标签: [阅读全文]

    11.3.3 mail模块

    这一模块在指令集的定义形式上与http模块是完全相同的。对mail指令的解析处理依据/nginx/ src/mail/ngx_mail.c文件中的以下指令集数组进行:       static ngx_command_t  ngx_mail_commands[] = {  ...

         时间 : 2016-03-29| 栏目 : nginx专题| 浏览 : 630 次| 暂无评论 标签: [阅读全文]

      11.3.2 event模块

      这一模块的指令集与上一模块的指令集在处理方式上基本相同。由于event模块中不会再嵌套其他模块,因此定义的指令集包括两部分,一部分是对events指令的定义,另一部分是对event模块内指令集的定义。 在解析配置文件时,遇到"events{"指令,Nginx服务器程序依据以下指令集数组对该条指令进行解析:   &n...

           时间 : 2016-03-29| 栏目 : nginx专题| 浏览 : 588 次| 暂无评论 标签: [阅读全文]

        11.3.1 http模块

        http模块定义的指令集数组在/nginx/src/http/ngx_http.c文件中可以找到:     static ngx_command_t  ngx_http_commands[] = {         &nb...

             时间 : 2016-03-29| 栏目 : nginx专题| 浏览 : 653 次| 暂无评论 标签: [阅读全文]

          11.3 3个基本模块的指令集数组结构

          在Nginx服务器程序中,不同的模块基于ngx_command_t结构体定义了各自的指令集数组。为了学习方便,我们将http、event和 mail模块的指令集数组结构归纳一下。对于其他模块,比如前面章节中提到的http类ngx_http_gzip_module模块、 ngx_http_rewrite_module模块和ngx_htt...

               时间 : 2016-03-29| 栏目 : nginx专题| 浏览 : 617 次| 暂无评论 标签: [阅读全文]

            11.2.3 conf和offset

            这两个成员都是用来配置偏移量的。我们知道set指针指向的函数一般要转换指令的参数并将转换后的值保存到配置结构体中,offset就是用来指定该值保存在配置结构体中的具体位置的。该值一般是Nginx程序通过调用offsetof()函数计算得出的。 conf成员用来指定配置文件结构体中各其他类型指令配置结构体在该结构体中的偏移量。Ngin...

                 时间 : 2016-03-29| 栏目 : nginx专题| 浏览 : 626 次| 暂无评论 标签: [阅读全文]

              11.2.2 函数指针set

              set指针指向一个指令函数,该函数的主要作用是从Nginx配置文件中把该指令的参数转换为合适的数据结构类型,并将转换后的值保存到Nginx模块的配置结构体(ngx_conf_t)中。 当然,对于简单的配置指令来说,可能并不需要将参数转换为值进行保存,只是在set指针指向的指令函数中完成一些简单的操作。比如,在处理错误日志时,e...

                   时间 : 2016-03-29| 栏目 : nginx专题| 浏览 : 559 次| 暂无评论 标签: [阅读全文]

                11.2.1 type成员

                type成员实际上由32位的无符号整型数组成,用来表示该指令在配置文件中的合法位置和可接受参数个数的标示符集合,前面16位表示指令的位置,后面16位表示参数个数。各位代表的含义如图11.1所示。 1. 表示合法位置的宏定义 Nginx预先定义好的表示指令合法位置的宏定义根据模块所属的类型不同,分布在不...

                     时间 : 2016-03-29| 栏目 : nginx专题| 浏览 : 637 次| 暂无评论 标签: [阅读全文]

                  11.2 ngx_command_s结构体

                  该结构体描述了模块支持的指令,负责解析配置文件的指令,一个指令对应一个配置指令。我们在/nginx/src/core/ngx_conf_file.h文件中可以找到该结构体的定义:     struct ngx_command_s {       &nb...

                       时间 : 2016-03-29| 栏目 : nginx专题| 浏览 : 548 次| 暂无评论 标签: [阅读全文]

                    11.1.4 回调函数

                    在ngx_module_s结构体中定义了7个函数指针,分别指向该模块自定义的回调函数。这些回调函数分别在主进程初始化、模块初始化、工作进程初始 化、线程初始化、线程退出、工作进程退出和主进程退出的时候被调用。如果该模块需要在发生这些行为时执行特定的功能,就可以通过这些回调函数指针注册一个 回调函数接口来实现。...

                         时间 : 2016-03-29| 栏目 : nginx专题| 浏览 : 610 次| 暂无评论 标签: [阅读全文]

                      11.1.3 模块上下文

                      结构体中,指向模块上下文结构的指针类型为void,这说明不同模块的模块上下文结构不同。实际情况确实是这样的,Nginx服务器程序根据不同的模块类型定义了不同的模块上下文结构。 最常见到和使用的是HTTP类模块的模块上下文结构体ngx_http_module_t:       typed...

                           时间 : 2016-03-29| 栏目 : nginx专题| 浏览 : 579 次| 暂无评论 标签: [阅读全文]

                        11.1.2 模块计数器index

                        什么叫"模块计数器"呢?我们知道,Nginx服务器的几乎所有功能都是以模块的形式出现的,并且这些模块可以在编译时添加或者卸载。Nginx程序为了方便管理模块,定义了一个存放所有模块的数组,我们在/nginx/src/core/ngx_conf_file.h文件中可以找到它:       ex...

                             时间 : 2016-03-29| 栏目 : nginx专题| 浏览 : 599 次| 暂无评论 标签: [阅读全文]

                          11.1.1 分类标识ctx_index

                          11.1.1  分类标识ctx_index Nginx程序的模块分为4种:分别是core、http、event和mail,每个模块在实现过程中使用的技术都不尽相同。"分类标识"就是用来表示该模块属于4种模块中的哪一类。...

                               时间 : 2016-03-29| 栏目 : nginx专题| 浏览 : 627 次| 暂无评论 标签: [阅读全文]

                            11.1 ngx_module_s结构体

                            该结构体是整个Nginx模块化架构最基本的数据结构体,它描述了Nginx程序中一个模块应该包含的基本属性。在Nginx 1.2.6的/nginx/src/core/ngx_conf_file.c中定义了该结构体。     struct ngx_module_s {    &n...

                                 时间 : 2016-03-29| 栏目 : nginx专题| 浏览 : 673 次| 暂无评论 标签: [阅读全文]

                              第11章 Nginx基本数据结构

                              从本章开始,我们学习Nginx源码的具体实现。学习体系错综复杂、功能服务实现丰富的Nginx服务器源码,应该从整个源码体系赖以存在的基本元素--数据结构开始学起。只有对常用的重要数据结构有所了解,才能减少在以后的学习过程中的困难。 Nginx源码中涉及的数据结构非常丰富。几乎每一个模块的实现都会引入它特有的链表、队列或者...

                                   时间 : 2016-03-29| 栏目 : nginx专题| 浏览 : 564 次| 暂无评论 标签: [阅读全文]

                                1.1 Nginx的历史

                                近年来,Nginx逐步进入高速发展的时期,从各类主流的IT媒体到各大著名的IT论坛,我们不时能够看到它的身影。     Netcraft公司,1994年在英国成立,官方网址为htt://uptime.netcraft.com。Netcraft公司为互联网市场以及在线安全方面提供咨询服务,同时...

                                     时间 : 2016-03-28| 栏目 : nginx专题| 浏览 : 1,076 次| 暂无评论 标签: [阅读全文]

                                  第一章 Nginx 初探

                                       Nginx服务器是轻量级Web服务器中广受好评的一款产品。从本章我们开始Nginx服务器的学习和实践。     在本章中,我们主要探究Nginx服务器是什么,它在相关的行业领域内地位如何,它有哪些用途等问题。我么将追随Nginx服务器由诞生到...

                                       时间 : 2016-03-28| 栏目 : nginx专题| 浏览 : 734 次| 暂无评论 标签: [阅读全文]

                                    Nginx高性能Web服务器详解

                                    第1章 Nginx初探 1.1 Nginx的历史 1.2 常见服务器产品介绍 1.2.1 Apache服务器 1.2.2 Microsoft IIS 1.2.3 Tomcat服务器 1.2.4 Lighttpd服务器 1.2.5 Nginx诞生记 1.2.6 版本变更大事记 1.3 Nginx的功能...

                                      薛坤教你打开Nginx目录浏览功能

                                      Nginx默认是不允许列出整个目录的。如需此功能, 打开nginx.conf文件,在location server 或 http段中加入 autoindex on; 另外两个参数最好也加上去: autoindex_exact_size off; 默认为on,显示出文件的确切大小,单位是bytes。 改为off后,显示出文件的大...

                                           时间 : 2016-01-26| 栏目 : nginx专题| 浏览 : 773 次| 暂无评论 标签: [阅读全文]

                                        薛坤教你隐藏nginx版本号

                                        隐藏nginx 版本号 # curl --head www.nginx.net HTTP/1.1 302 Moved Temporarily Server: nginx/0.8.38 Date: Fri, 04 Jun 2010 01:08:44 GMT Content-Type: text/html Content-Leng...

                                             时间 : 2016-01-26| 栏目 : nginx专题| 浏览 : 909 次| 评论 : 标签: [阅读全文]

                                          关于NGINX反向代理

                                          前言: 我想通过上一章如何测试Nginx的高性能,想必大家对于NGINX作为一个高性能的web服务器毫无异议;但是NGINX的功能绝不局限于简单的web服务器,NGINX在互联网扮演的角色也并非只是作为web服务器,其实在实际的应用场景下,NGINX更多是用来做web的反向代理. &nbs...

                                               时间 : 2013-08-09| 栏目 : nginx专题| 浏览 : 520 次| 暂无评论 标签: [阅读全文]

                                            NGINX如何反向代理Tomcat并且实现Session保持

                                            简介 LNMT=Linux+Nginx+MySQL+Tomcat; Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器; 在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选;   架构需求 ...

                                                 时间 : 2013-07-09| 栏目 : nginx专题| 浏览 : 633 次| 暂无评论 标签: [阅读全文]

                                              Nginx+Apache+Subversion安装笔记

                                              我的Linux服务器均为CentOS,这两天刚刚折腾完LNMP的配置,接下来继续折腾SVN的环境配置。 在编译SVN时,发现Nginx尚不支持Subversion,查了相关资料,发现只有Apache可以支持SVN,无可奈何,看来只能做一个Apache与Nginx共存的服务器,用Nginx proxy把发向Nginx的SV...

                                                   时间 : 2012-11-11| 栏目 : nginx专题| 浏览 : 487 次| 暂无评论 标签: [阅读全文]