开源人linux系统运维培训中心

3.6 小结

性能、可用性、伸缩性、扩展性和安全性是网站架构最核心的几个要素,这几个问题解决了,大型网站架构设计的大部分挑战也就克服了。因此本书第二篇即按这五个架构要素进行组织。 ...

       时间 : 2016-03-31| 栏目 : 网站架构| 浏览 : 494 次| 暂无评论 标签: [阅读全文]

    3.5 安全性

     互联网是开放的,任何人在任何地方都可以访问网站。网站的安全架构就是保护网站不受恶意访问和攻击,保护网站的重要数据不被窃取。     衡量网站安全架构的标准就是针对现存和潜在的各种攻击与窃密手段,是否有可靠的应对策略。 ...

         时间 : 2016-03-31| 栏目 : 网站架构| 浏览 : 483 次| 暂无评论 标签: [阅读全文]

      3.4 扩展性

      不同于其它架构要素主要关注非功能性需求,网站的扩展性架构直接关注网站的功能需求。网站快速发展,功能不断扩展,如何设计网站的架构使其能够快速响应需求变化,是网站可扩展架构主要的目的。     衡量网站架构扩展性好坏的主要标准就是在网站增加新的业务产品时,是否可以实现对现有产品透明无影响,不需要...

           时间 : 2016-03-31| 栏目 : 网站架构| 浏览 : 460 次| 暂无评论 标签: [阅读全文]

        3.3 伸缩性

        大型网站需要面对大量用户的高并发访问和存储海量数据不可能只用一台服务器就处理全部用户请求,存储全部数据。网站通过集群的方式将多台服务器组成一个整体共同提供服务。所谓伸缩性是指通过不断向集群中加入服务器的手段来缓解不断上升的用户并发访问压力和不断增长的数据缓存需求。     衡量架构伸缩性的主...

             时间 : 2016-03-31| 栏目 : 网站架构| 浏览 : 466 次| 暂无评论 标签: [阅读全文]

          3.2 可用性

          对于大型网站而言,特别是知名网站,网站宕掉、服务不可用是一个重大的事故,轻则影响网站声誉,重则可能会摊上官司。对于电子商务类网站,网站不可用还意味着损失金钱和用户。因此几乎所有网站都承诺7X24可用,但事实上任何网站都不能达到完全的7X24可用,总会有一些故障时间,扣除这些故障时间,就是网站的总可用时间,这个时间可以换算成网站的可用...

               时间 : 2016-03-31| 栏目 : 网站架构| 浏览 : 465 次| 暂无评论 标签: [阅读全文]

            tar 压缩时排除某个目录或文件

            在对某个目录进行压缩的时候,有时候想排除掉某个目录,示例如下: 如果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运维| 浏览 : 409 次| 暂无评论 标签: [阅读全文]

              2.1. 继续Hello World

              在第 1.4 节 “第一个程序”中,读者应该已经尝试对 Hello world 程序做各 种改动看编译运行结果,其中有些改动会导致编译出错,有些改动会影响程序 的输出,有些改动则不影响程序的输出,下面我们总结一下。首先,注释可以 跨行,也可以穿插在程序之中,看下面的例子。 例 2.1. 带更多注释的 Hello World #...

                   时间 : 2016-03-30| 栏目 : linux编程| 浏览 : 491 次| 暂无评论 标签: [阅读全文]

                第2 章 常量、变量和表达式

                2.1. 继续 Hello World 2.2. 常量 2.3. 变量 2.4. 赋值 2.5. 表达式 2.6. 字符类型与字符编码...

                     时间 : 2016-03-30| 栏目 : linux编程| 浏览 : 406 次| 暂无评论 标签:, [阅读全文]

                  1.4. 第一个程序

                  通常一本教编程的书中的第一个例子都是打印“Hello, World.”,这个传统源自[3],用 C 语言写这个程序可以这样写: 例 1.1. Hello World #include <stdio.h> /* main: generate some simple output */ int main...

                       时间 : 2016-03-30| 栏目 : linux编程| 浏览 : 413 次| 暂无评论 标签: [阅读全文]

                    1.3. 程序的调试

                           编程是一个复杂的过程,因为是人做的事情,所以难免经常出错。据说有这样一个典故:早期的计算机体积都很大,有一次一台计算机不能正常工作了,工程师们找了半天原因最后发现是一只臭虫钻进计算机中造成的。从此以后,程序中的错误被叫做臭虫(Bug),而找到这些 Bug 并加以纠正...

                         时间 : 2016-03-30| 栏目 : linux编程| 浏览 : 401 次| 暂无评论 标签: [阅读全文]

                      1.2. 自然语言和形式语言

                      自然语言(Natural Language)就是人类讲的语言,比如汉语、英语和法语。这类语言不是人为设计(虽然有人试图强加一些规则)而是自然进化的。形式 语言(Formal Language)是为了特定应用而人为设计的语言。例如数学家用的数字和运算符号、化学家用的分子式等。编程语言也是一种形式语言,是专门设计用来表达计算过程的形式语言。...

                           时间 : 2016-03-30| 栏目 : linux编程| 浏览 : 391 次| 暂无评论 标签: [阅读全文]

                        11.12 本章小结

                        本章梳理了Nginx服务器程序中涉及的重要基础数据结构体。ngx_module_s结构体涉及模块组织,ngx_command_s和 ngx_conf_s结构体涉及指令解析,ngx_pool_s结构体是内存管理的主要结构,nginx_connection_s和 ngx_signal_t结构体分别涉及网络管理和信号管理,它们与进程间通信也...

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

                          11.11 ngx_process_t结构体

                          该结构体是Nginx服务器程序用于存放工作进程信息的数据结构,每一个工作进程对应一个这样的结构体,所有的结构体构成一个ngx_process_t结构数组,也就是Nginx服务器的进程表。 我们在/nginx/src/os/unix/ngx_process.c文件中可以找到该结构体的定义:     ...

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

                            11.10 ngx_signal_t结构体

                            Nginx服务器的启动、停止和升级都是通过信号控制的。在下一章中,我们会学习到信号控制源码的相关知识,因此在这里需要先介绍一下Nginx服务器程序存放信号信息的ngx_signal_t结构体。 该结构体的定义我们在/nginx/src/os/unix/ngx_process.c文件中可以找到:   &nbs...

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

                              11.9.2 指令类型type

                              这里提到的指令类型和ngx_command_s结构体中的type含义不同。Nginx程序中的指令有哪些类型呢?它们以宏的形式定义在不同的源码头文件中。我们在/nginx/src/core/ngx_conf_file.h文件中可以找到:       #define NGX_DIRECT_CON...

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

                                11.9.1 配置上下文*ctx

                                我们在第3章中就已经学习过,Nginx的配置文件是分块配置的,常见的有http块、server块、location块以及upsteam块和mail块等。每一个这样的配置块代表一个作用域。高一级配置块的作用域包含了多个低一级配置块的作用域,也就是有作用域嵌套的现象。这样,配置文件中的许多指令都会同时包含在多个作用域内。比如,http块中的指...

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

                                  11.9 ngx_conf_s结构体

                                  该结构体用于Nginx在解析配置文件时描述每个指令的属性,也是Nginx程序中非常重要的一个数据结构,我们在/nginx/src/core/ngx_conf_file.h文件中可以找到它的定义:       struct ngx_conf_s  {    &n...

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

                                    11.8 ngx_cycle_s结构体

                                    该结构体是Nginx程序启动过程中使用的主要结构体。Nginx程序启动的核心过程基本上是围绕该结构体开始的。我们在/nginx/src/core/ngx_cycle.h文件中可以找到该结构体的完整定义:     struct ngx_cycle_s {      ...

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

                                      11.7 ngx_connection_s结构体

                                      该结构体用于描述一个网络连接。我们已经知道,Nginx服务器使用事件驱动模型来处理网络连接请求。每当Nginx服务器产生一个新的socket时,就会构造一个ngx_connection_s结构体,将该socket的属性和数据信息保存下来。该结构体的完整定义在/nginx/src/core/ngx_connection.h文件中可以找到,其...

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

                                        11.6 ngx_event_s结构体

                                        该结构体存储了网络连接IO(事件)状态的详细信息。在Nginx中,所有的ngx_event_s结构体组成了两个全局链表:一个完成连接读操作的描述,另一个完成连接写操作的描述。该结构体定义在文件/nginx/src/event/ngx_event.h中:       struct ngx_ev...

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

                                          11.5.3 ngx_http_conf_addr_t结构体

                                          在学习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专题| 浏览 : 426 次| 暂无评论 标签: [阅读全文]

                                            11.5.2 ngx_http_conf_port_t结构体

                                            该结构体用于描述监听端口的配置信息,定义在文件/nginx/src/http/ngx_http_core_module.h中:     typedef struct {           ngx_int_t &...

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

                                              11.5.1 ngx_listening_s结构体

                                              该结构体用于描述Nginx服务器在运行过程中使用的网络套接字socket的详细属性信息。每个这样的结构体会对应Nginx配置中配置的多个虚拟主机,以及对应一个ngx_connection_s结构体。该结构体的完整定义在/nginx/src/core/ngx_connection.h文件中可以找到,成员比较复杂,我们只介绍与后面学习相关的重...

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