[Nginx]Nginx的一些概念
Nginx 关注:
一、性能
1)高并发下资源不浪费在处理进程切换休眠等,保持高的吞吐量
2)高并发下如何保持平均时延低
3)提高网络效率,例如长连接代替短链接,高压缩算法提高信息量,使用缓存减少网络交互次数
二、可伸缩性
可以通过添加组件来提升服务,允许组件之间有交互功能,可通过简化组件、降低组件间耦合度、将服务分散到许多组件等
三、简单性
简单性通常指组件的简单程度,每个组件越简单,就会越容易理解和实现,也就越容易 被验证(被测试)。一般,我们通过分离关注点原则来设计组件,对于整体架构来说,通常 使用通用性原则,统一组件的接口,这样就减少了架构中的变数。
四、可修改性
1)可进化性
可进化性表示我们在修改一个组件时,对其他组件产生负面影响的程度。当然,每个组 件的可进化性都是不同的,越是核心的组件其可进化性可能会越低,也就是说,对这个组件 的功能做出修改时可能同时必须修改其他大量的相关组件。
2)可扩展性
可扩展性表示将一个新的功能添加到系统中的能力(不影响其他功能)。与可进化性一 样,除了静态可扩展性外,还有动态可扩展性(如果已经部署的服务在不停止、不重启情况 下添加新的功能,就称为动态可扩展性)。
3)可定制性
可定制性是指可以临时性地重新规定一个组件或其他架构元素的特性,从而提供一种非 常规服务的能力。如果某一个组件是可定制的,那么是指用户能够扩展该组件的服务,而不 会对其他客户产生影响。支持可定制性的风格一般会提高简单性和可扩展性,因为通常情况 下只会实现最常用的功能,不太常用的功能则交由用户重新定制使用,这样组件的复杂性就 降低了,整个服务也会更容易扩展。
4)可配置性
可配置性是指在Web服务部署后,通过对服务提供的配置文件进行修改,来提供不同的 功能。它与可扩展性、可重用性相关。
5)可重用性
可重用性指的是一个应用中的功能组件在不被修改的情况下,可以在其他应用中重用的 程度。
四、可见性
在Web服务器这个应用场景中,可见性通常是指一些关键组件的运行情况可以被监控的 程度。例如,服务中正在交互的网络连接数、缓存的使用情况等。通过这种监控,可以改善 服务的性能,尤其是可靠性。
五、可移植性
可移植性是指服务可以跨平台运行,这也是当下Nginx被大规模使用的必要条件。
六、可靠性
可靠性可以看做是在服务出现部分故障时,一个架构容易受到系统层面故障影响的程 度。可以通过以下方法提高可靠性:避免单点故障、增加冗余、允许监视,以及用可恢复的 动作来缩小故障的范围。
Nginx的模块:
在这5种模块中,配置模块与核心模块都是与Nginx框架密切相关的,是其他模块的基 础。而事件模块则是HTTP模块和mail模块的基础。
这个例子中大致分为7个阶段,这些阶段是可以重复发生的,因此,一个下载静态资源 请求可能会由于请求数据过大、网速不稳定等因素而被分解为成百上千个表8-1中所列出的 阶段。
异步处理和多阶段是相辅相成的,只有把请求分为多个阶段,才有所谓的异步处理。也 就是说,当一个事件被分发到事件消费者中进行处理时,事件消费者处理完这个事件只相当 于处理完1个请求的某个阶段。什么时候可以处理下一个阶段呢?这只能等待内核的通知, 即当下一次事件出现时,epoll等事件分发器将会获取到通知,再继续调用事件消费者处理请 求。这样,每个阶段中的事件消费者都不清楚本次完整的操作究竟什么时候会完成,只能异步被动地等待下一次事件的通知,这样将减少进程休眠状况。
[Nginx]Nginx的一些概念的更多相关文章
- nginx架构与基础概念
1 Nginx架构 Nginx 高性能,与其架构有关. Nginx架构: nginx运行时,在unix系统中以daemon形式在后台运行,后台进程包含一个master进程和多个worker ...
- 2-4、nginx特性及基础概念-nginx web服务配置详解
Nginx Nginx:engine X 调用了libevent:高性能的网络库 epoll():基于事件驱动event的网络库文件 Nginx的特性: 模块化设计.较好扩展性(不支持模块动态装卸载, ...
- nginx入门与实战 安装 启动 配置nginx Nginx状态信息(status)配置 正向代理 反向代理 nginx语法之location详解
nginx入门与实战 网站服务 想必我们大多数人都是通过访问网站而开始接触互联网的吧.我们平时访问的网站服务 就是 Web 网络服务,一般是指允许用户通过浏览器访问到互联网中各种资源的服务. Web ...
- [nginx] nginx源码分析--SNI性能分析
概念 我们已经知道什么是SNI,以及如何为用户配置SNI. [nginx] nginx使用SNI功能的方法 问题 通过观察配置文件,可以发现,针对每一个SSL/TLS链接, nginx都会动态的查找( ...
- ubuntu 重启 nginx 失败,* Restarting nginx nginx ...fail!
ubuntu 重启 nginx 失败,* Restarting nginx nginx ...fail! 执行 nginx 重启服务时,提示失败如下: $ sudo service ngi ...
- 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: ...
- [development][security][modsecurity][nginx] nginx / modsecurity development things
接续前节:[security][modsecurity][nginx] nginx 与 modsecurity nginx开发手册:https://nginx.org/en/docs/dev/deve ...
- [security][modsecurity][nginx] nginx 与 modsecurity
参考文档: https://github.com/SpiderLabs/ModSecurity/wiki/Reference-Manual#installation-for-nginx nginx不支 ...
- nginx: [error] invalid PID number "" in "/var/run/nginx/nginx.pid"
一.出现这个的情况 解决方法一: 1.添加正在运行pid号到/var/run/nginx/nginx.pid就可以解决问题了(这个情况是在重启的情况下发现的) 2.如果是重启机器之后,系统有时会删掉/ ...
- 解决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 ...
随机推荐
- Linux下搭建测试环境
一. 安装虚拟机 1.选择linux 型号 3.0x 64的版本 2.磁盘分区 /目录, home目录 ,boot,var ,设置root密码 3.安装(过程略) 二. 配置虚拟机网卡 路径:cd / ...
- centos tree 命令
ftp://mama.indstate.edu/linux/tree/ download & make
- frost_vex_01
int inc = 0; //整数inc等于0 while(inc < 6){ //inc在小于6的范围内递增 if(rand(@ptnum + inc + ch("seed" ...
- QCAD 修改默认的线宽
QCAD 修改默认的线宽 默认的宽度实在是太宽了,把一些细节给掩盖了. 可以按以下方法找到修改默认宽度. 在 Layer -> Edit Layer 中. 最开始找了好久好久. 最开始在这里找了 ...
- Java String类和StringBuffer类的区别
1.String与StringBuffer的区别简单地说,就是一个变量和常量的关系.StringBuffer对象的内容可以修改:而String对象一旦产生后就不可以被修改,重新赋值其实是两个对象.St ...
- 解决Tomcat的IllegalArgumentException: Control character in cookie value or attribute错误
接口中带有中文,tomcat8 17-Apr-2019 13:21:23.734 严重 [http-nio-8082-exec-2] org.apache.coyote.http11.Abstract ...
- Oracle 动态SQL 注意细节 ORA-00911: 无效字符
随笔 - 46 文章 - 92 评论 - 5 lv_sql:=' insert into ETL_SUCESS_AMOUNT select SEQ_OS_ETL_AMOUNTID.NEXT ...
- C#读写Excel实践笔记
使用第三类包:NPOI 介绍 Github地址:https://github.com/tonyqus/npoi,Java POI项目的.NET版. 通过它可以在没有安装Office软件的情况下,快速的 ...
- Asynchronous programming in javascript
Javascript是单线程的,因此异步编程对其尤为重要. ES 6以前: * 回调函数* 事件监听(事件发布/订阅)* Promise对象 ES 6: * Generator函数(协程corouti ...
- tp框架增删改
选择一张表: 首先要创建模型: 1 $n = M("account"); 数据库添加数据: 1.使用数组: 1 2 3 1.使用数组 $arr = array("uid& ...