Nginx 关注:
一、性能
  1)高并发下资源不浪费在处理进程切换休眠等,保持高的吞吐量
  2)高并发下如何保持平均时延低
  3)提高网络效率,例如长连接代替短链接,高压缩算法提高信息量,使用缓存减少网络交互次数
二、可伸缩性
  可以通过添加组件来提升服务,允许组件之间有交互功能,可通过简化组件、降低组件间耦合度、将服务分散到许多组件等
三、简单性
  简单性通常指组件的简单程度,每个组件越简单,就会越容易理解和实现,也就越容易 被验证(被测试)。一般,我们通过分离关注点原则来设计组件,对于整体架构来说,通常 使用通用性原则,统一组件的接口,这样就减少了架构中的变数。
四、可修改性
  1)可进化性
  可进化性表示我们在修改一个组件时,对其他组件产生负面影响的程度。当然,每个组 件的可进化性都是不同的,越是核心的组件其可进化性可能会越低,也就是说,对这个组件 的功能做出修改时可能同时必须修改其他大量的相关组件。
  2)可扩展性
  可扩展性表示将一个新的功能添加到系统中的能力(不影响其他功能)。与可进化性一 样,除了静态可扩展性外,还有动态可扩展性(如果已经部署的服务在不停止、不重启情况 下添加新的功能,就称为动态可扩展性)。
  3)可定制性
  可定制性是指可以临时性地重新规定一个组件或其他架构元素的特性,从而提供一种非 常规服务的能力。如果某一个组件是可定制的,那么是指用户能够扩展该组件的服务,而不 会对其他客户产生影响。支持可定制性的风格一般会提高简单性和可扩展性,因为通常情况 下只会实现最常用的功能,不太常用的功能则交由用户重新定制使用,这样组件的复杂性就 降低了,整个服务也会更容易扩展。
  4)可配置性
  可配置性是指在Web服务部署后,通过对服务提供的配置文件进行修改,来提供不同的 功能。它与可扩展性、可重用性相关。
  5)可重用性
  可重用性指的是一个应用中的功能组件在不被修改的情况下,可以在其他应用中重用的 程度。

四、可见性
  在Web服务器这个应用场景中,可见性通常是指一些关键组件的运行情况可以被监控的 程度。例如,服务中正在交互的网络连接数、缓存的使用情况等。通过这种监控,可以改善 服务的性能,尤其是可靠性。
五、可移植性
  可移植性是指服务可以跨平台运行,这也是当下Nginx被大规模使用的必要条件。
六、可靠性
  可靠性可以看做是在服务出现部分故障时,一个架构容易受到系统层面故障影响的程 度。可以通过以下方法提高可靠性:避免单点故障、增加冗余、允许监视,以及用可恢复的 动作来缩小故障的范围。

Nginx的模块:

在这5种模块中,配置模块与核心模块都是与Nginx框架密切相关的,是其他模块的基 础。而事件模块则是HTTP模块和mail模块的基础。

这个例子中大致分为7个阶段,这些阶段是可以重复发生的,因此,一个下载静态资源 请求可能会由于请求数据过大、网速不稳定等因素而被分解为成百上千个表8-1中所列出的 阶段。
  异步处理和多阶段是相辅相成的,只有把请求分为多个阶段,才有所谓的异步处理。也 就是说,当一个事件被分发到事件消费者中进行处理时,事件消费者处理完这个事件只相当 于处理完1个请求的某个阶段。什么时候可以处理下一个阶段呢?这只能等待内核的通知, 即当下一次事件出现时,epoll等事件分发器将会获取到通知,再继续调用事件消费者处理请 求。这样,每个阶段中的事件消费者都不清楚本次完整的操作究竟什么时候会完成,只能异步被动地等待下一次事件的通知,这样将减少进程休眠状况。

[Nginx]Nginx的一些概念的更多相关文章

  1. nginx架构与基础概念

    1       Nginx架构 Nginx 高性能,与其架构有关. Nginx架构: nginx运行时,在unix系统中以daemon形式在后台运行,后台进程包含一个master进程和多个worker ...

  2. 2-4、nginx特性及基础概念-nginx web服务配置详解

    Nginx Nginx:engine X 调用了libevent:高性能的网络库 epoll():基于事件驱动event的网络库文件 Nginx的特性: 模块化设计.较好扩展性(不支持模块动态装卸载, ...

  3. nginx入门与实战 安装 启动 配置nginx Nginx状态信息(status)配置 正向代理 反向代理 nginx语法之location详解

    nginx入门与实战 网站服务 想必我们大多数人都是通过访问网站而开始接触互联网的吧.我们平时访问的网站服务 就是 Web 网络服务,一般是指允许用户通过浏览器访问到互联网中各种资源的服务. Web ...

  4. [nginx] nginx源码分析--SNI性能分析

    概念 我们已经知道什么是SNI,以及如何为用户配置SNI. [nginx] nginx使用SNI功能的方法 问题 通过观察配置文件,可以发现,针对每一个SSL/TLS链接, nginx都会动态的查找( ...

  5. ubuntu 重启 nginx 失败,* Restarting nginx nginx ...fail!

    ubuntu 重启 nginx 失败,* Restarting nginx nginx ...fail!       执行 nginx 重启服务时,提示失败如下: $ sudo service ngi ...

  6. nginx: [error] open() "/var/run/nginx/nginx.pid" failed (2: No such file or directory)

    在重启nginx服务的时候,出现了这个错误. [root@izuf68g6a94fj32w0afx00z etc]# nginx -c /var/run/nginx/nginx.pid nginx: ...

  7. [development][security][modsecurity][nginx] nginx / modsecurity development things

    接续前节:[security][modsecurity][nginx] nginx 与 modsecurity nginx开发手册:https://nginx.org/en/docs/dev/deve ...

  8. [security][modsecurity][nginx] nginx 与 modsecurity

    参考文档: https://github.com/SpiderLabs/ModSecurity/wiki/Reference-Manual#installation-for-nginx nginx不支 ...

  9. nginx: [error] invalid PID number "" in "/var/run/nginx/nginx.pid"

    一.出现这个的情况 解决方法一: 1.添加正在运行pid号到/var/run/nginx/nginx.pid就可以解决问题了(这个情况是在重启的情况下发现的) 2.如果是重启机器之后,系统有时会删掉/ ...

  10. 解决nginx重启“var/run/nginx/nginx.pid" no such file or directory问题

    重启虚拟机后,再次重启nginx会报错“/var/run/nginx/nginx.pid” no such file or directory. 方法一(已试过可行): 到/var/run下看没有ng ...

随机推荐

  1. sklearn learn preprocessing

    train_test_split sklearn.model_selection.train_test_split(*arrays, test_size(float,int/None),#defaul ...

  2. mac下 改变了ssh连接的端口 git怎么修改

    1. 情况是这样的,为了安全起见,我们的服务器ssh连接端口改为了33 sudo vi /etc/ssh/ssh_config port  33 2. 因为git是基于ssh发送数据的,并且git服务 ...

  3. Kali Linux系统的安装、配置、使用

    这个随便写的,随便看看就好,主要给讲一下安装过程 这里因为我物理机装的本来就是kali.所以懒得重装了,直接拿虚拟机演示一下 物理机安装kali的话,推荐使用rufus使用dd模式刻盘,不会造成之后的 ...

  4. 《DenseNet Models for Tiny ImageNet Classification》课程设计论文

    paper : <DenseNet Models for Tiny ImageNet Classification>     https://arxiv.org/ftp/arxiv/pap ...

  5. Hi3519V101+IMX274开发板调试经验

    1.uboot没换 2.内核网络不对,其它的正常, sudo apt-get install libncurses5-dev sudo apt-get install u-boot-tools 3.根 ...

  6. 【爬虫综合作业】猫眼电影TOP100分析

    作业的要求来自于:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE2/homework/3075 一.爬虫对象 猫眼电影TOP100排行榜 二.代码如下 im ...

  7. Qt applendPlainText()/append() 多添加一个换行解决方法

    Qt applendPlainText()/append() 多添加一个换行解决方法 void ConsoleDialog::appendMessageToEditor(const QString & ...

  8. windows的github教程

    如何向github提交变更1. 在github上面创建project,获得git地址:2. 来到windows,首先安装git:3. 在目标目录下:git clone https://github.c ...

  9. layui select 选完其他选项, 手工清空选项 又恢复最初的选项?

    启用layui的select  下拉搜索项: lay-search <div class="layui-inline"> <label class="l ...

  10. AMQP close-reason, initiated by Peer, code=406

    错误: AMQPclose-reason, initiated by Peer, code=406, text="PRECONDITION_FAILED -inequivalent arg ...