不同于其它架构要素主要关注非功能性需求,网站的扩展性架构直接关注网站的功能需求。网站快速发展,功能不断扩展,如何设计网站的架构使其能够快速响应需求变化,是网站可扩展架构主要的目的。 衡量网站架构扩展性好坏的主要标准就是在网站增加新的业务产品时,是否可以实现对现有产品透明无影响,不需要...
时间 : 2016-03-31| 栏目 : 网站架构| 浏览 : 1,375 次| 暂无评论 标签:大型网站的扩展性,保定开源人 | [阅读全文] |
在对某个目录进行压缩的时候,有时候想排除掉某个目录,示例如下: 如果webapps目录下有3个目录,www, bbs, search drwxr-xr-x 2 root root 4096 Nov 18 18:48 www drwxr-xr-x 2 root root 4096 Nov 18 18:48 ...
时间 : 2016-03-30| 栏目 : linux运维| 浏览 : 1,302 次| 暂无评论 标签:tar 压缩时排除某个目录或文件 | [阅读全文] |
在第 1.4 节 “第一个程序”中,读者应该已经尝试对 Hello world 程序做各 种改动看编译运行结果,其中有些改动会导致编译出错,有些改动会影响程序 的输出,有些改动则不影响程序的输出,下面我们总结一下。首先,注释可以 跨行,也可以穿插在程序之中,看下面的例子。 例 2.1. 带更多注释的 Hello World #...
2.1. 继续 Hello World 2.2. 常量 2.3. 变量 2.4. 赋值 2.5. 表达式 2.6. 字符类型与字符编码...
时间 : 2016-03-30| 栏目 : linux编程| 浏览 : 1,268 次| 暂无评论 标签:变量和表达式,保定开源人, 常量 | [阅读全文] |
通常一本教编程的书中的第一个例子都是打印“Hello, World.”,这个传统源自[3],用 C 语言写这个程序可以这样写: 例 1.1. Hello World #include <stdio.h> /* main: generate some simple output */ int main...
编程是一个复杂的过程,因为是人做的事情,所以难免经常出错。据说有这样一个典故:早期的计算机体积都很大,有一次一台计算机不能正常工作了,工程师们找了半天原因最后发现是一只臭虫钻进计算机中造成的。从此以后,程序中的错误被叫做臭虫(Bug),而找到这些 Bug 并加以纠正...
时间 : 2016-03-30| 栏目 : linux编程| 浏览 : 1,208 次| 暂无评论 标签:linux c程序的调试 | [阅读全文] |
自然语言(Natural Language)就是人类讲的语言,比如汉语、英语和法语。这类语言不是人为设计(虽然有人试图强加一些规则)而是自然进化的。形式 语言(Formal Language)是为了特定应用而人为设计的语言。例如数学家用的数字和运算符号、化学家用的分子式等。编程语言也是一种形式语言,是专门设计用来表达计算过程的形式语言。...
本章梳理了Nginx服务器程序中涉及的重要基础数据结构体。ngx_module_s结构体涉及模块组织,ngx_command_s和 ngx_conf_s结构体涉及指令解析,ngx_pool_s结构体是内存管理的主要结构,nginx_connection_s和 ngx_signal_t结构体分别涉及网络管理和信号管理,它们与进程间通信也...
时间 : 2016-03-29| 栏目 : nginx专题| 浏览 : 1,243 次| 暂无评论 标签:Nginx高性能Web服务器详解 | [阅读全文] |
该结构体是Nginx服务器程序用于存放工作进程信息的数据结构,每一个工作进程对应一个这样的结构体,所有的结构体构成一个ngx_process_t结构数组,也就是Nginx服务器的进程表。 我们在/nginx/src/os/unix/ngx_process.c文件中可以找到该结构体的定义:  ...
时间 : 2016-03-29| 栏目 : nginx专题| 浏览 : 1,370 次| 暂无评论 标签:ngx_process_t结构体 | [阅读全文] |
Nginx服务器的启动、停止和升级都是通过信号控制的。在下一章中,我们会学习到信号控制源码的相关知识,因此在这里需要先介绍一下Nginx服务器程序存放信号信息的ngx_signal_t结构体。 该结构体的定义我们在/nginx/src/os/unix/ngx_process.c文件中可以找到: &nbs...
时间 : 2016-03-29| 栏目 : nginx专题| 浏览 : 1,301 次| 暂无评论 标签:ngx_signal_t结构体 | [阅读全文] |
这里提到的指令类型和ngx_command_s结构体中的type含义不同。Nginx程序中的指令有哪些类型呢?它们以宏的形式定义在不同的源码头文件中。我们在/nginx/src/core/ngx_conf_file.h文件中可以找到: #define NGX_DIRECT_CON...
我们在第3章中就已经学习过,Nginx的配置文件是分块配置的,常见的有http块、server块、location块以及upsteam块和mail块等。每一个这样的配置块代表一个作用域。高一级配置块的作用域包含了多个低一级配置块的作用域,也就是有作用域嵌套的现象。这样,配置文件中的许多指令都会同时包含在多个作用域内。比如,http块中的指...
该结构体用于Nginx在解析配置文件时描述每个指令的属性,也是Nginx程序中非常重要的一个数据结构,我们在/nginx/src/core/ngx_conf_file.h文件中可以找到它的定义: struct ngx_conf_s { &n...
时间 : 2016-03-29| 栏目 : nginx专题| 浏览 : 1,258 次| 暂无评论 标签:ngx_conf_s结构体 | [阅读全文] |
该结构体是Nginx程序启动过程中使用的主要结构体。Nginx程序启动的核心过程基本上是围绕该结构体开始的。我们在/nginx/src/core/ngx_cycle.h文件中可以找到该结构体的完整定义: struct ngx_cycle_s {  ...
时间 : 2016-03-29| 栏目 : nginx专题| 浏览 : 1,559 次| 暂无评论 标签:ngx_cycle_s结构体 | [阅读全文] |
该结构体用于描述一个网络连接。我们已经知道,Nginx服务器使用事件驱动模型来处理网络连接请求。每当Nginx服务器产生一个新的socket时,就会构造一个ngx_connection_s结构体,将该socket的属性和数据信息保存下来。该结构体的完整定义在/nginx/src/core/ngx_connection.h文件中可以找到,其...
时间 : 2016-03-29| 栏目 : nginx专题| 浏览 : 1,586 次| 暂无评论 标签:ngx_connection_s结构体 | [阅读全文] |
该结构体存储了网络连接IO(事件)状态的详细信息。在Nginx中,所有的ngx_event_s结构体组成了两个全局链表:一个完成连接读操作的描述,另一个完成连接写操作的描述。该结构体定义在文件/nginx/src/event/ngx_event.h中: struct ngx_ev...
时间 : 2016-03-29| 栏目 : nginx专题| 浏览 : 1,513 次| 暂无评论 标签:ngx_event_s结构体 | [阅读全文] |
在学习ngx_http_conf_port_t结构体时,我们将监听端口相同的地址存放在一个数组中,数组的每个监听地址配置信息都存放在一个ngx_http_conf_addr_t结构体中,包括监听的所有server块的ngx_http_core_srv_conf_t结构,以及hash、wc_head和wc_tail这些hash结构。该结构体...
时间 : 2016-03-29| 栏目 : nginx专题| 浏览 : 1,393 次| 暂无评论 标签:ngx_http_conf_addr_t结构体 | [阅读全文] |
该结构体用于描述监听端口的配置信息,定义在文件/nginx/src/http/ngx_http_core_module.h中: typedef struct { ngx_int_t &...
时间 : 2016-03-29| 栏目 : nginx专题| 浏览 : 1,311 次| 暂无评论 标签:ngx_http_conf_port_t结构体 | [阅读全文] |
该结构体用于描述Nginx服务器在运行过程中使用的网络套接字socket的详细属性信息。每个这样的结构体会对应Nginx配置中配置的多个虚拟主机,以及对应一个ngx_connection_s结构体。该结构体的完整定义在/nginx/src/core/ngx_connection.h文件中可以找到,成员比较复杂,我们只介绍与后面学习相关的重...
时间 : 2016-03-29| 栏目 : nginx专题| 浏览 : 1,317 次| 暂无评论 标签:ngx_listening_s结构体 | [阅读全文] |