[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 ...
随机推荐
- C++动态链接库方法调用
//定义内存的信息结构 [StructLayout(LayoutKind.Sequential)] public struct MEMORY_INFO { public uint dwLength; ...
- Spark参数详解 一(Spark1.6)
Spark参数详解 (Spark1.6) 参考文档:Spark官网 在Spark的web UI在"Environment"选项卡中列出Spark属性.这是一个很有用的地方,可以检查 ...
- Centos7下使用yum源安装zabbix Server
系统:Centos7 zabbix版本:4.2 一.Zabbix Server端 1.安装仓库 rpm -ivh https://repo.zabbix.com/zabbix/4.2/rhel ...
- ActiveMQ (二)—发布订阅模式
ActiveMQ的另一种模式就SUB/HUB即发布订阅模式,是SUB/hub就是一拖N的USB分线器的意思.意思就是一个来源分到N个出口.还是上节的例子,当一个订单产生后,后台N个系统需要联动,但有一 ...
- JSON和JSONP,浅析JSONP解决AJAX跨域问题
说到AJAX就会不可避免的面临两个问题,第一个是AJAX以何种格式来交换数据?第二个是跨域的需求如何解决?这两个问题目前都有不同的解决方案,比如数据可以用自定义字符串或者用XML来描述,跨域可以通过服 ...
- Docker外包团队 2019年3月更新 企业如何使用Docker
很难将Docker所带来的影响统一的用一种特质来说.当使用Docker执行好时,它对组织,团队,开发者以及运维人员有多层次的好处.Docker使得架构设计简单化,因为所有的应用都将一致的从外部来透视主 ...
- homework 张一刚
#include<stdio.h> #include<unistd.h> #include<sys/types.h> #include<sys/stat.h& ...
- v4l2框架
参考:https://www.cnblogs.com/tuotuteng/p/4648387.html http://blog.sina.com.cn/s/blog_c91863e60102w65w. ...
- windows 8.1 启用hyper-v导致vmware 无法使用的问题解决方案(兼顾WP8.1模拟器和vmware)
最近搭建了windows phone 8.1开发环境,为了开机就可以进行WP8.1开发,就使用了 bcdedit /set {BCD ID} hypervisorlaunchtype auto 命令将 ...
- php正则讲解 及与 js的正则比较
正则:用于检索字符串的规则: js正则: var reg=/规则/ reg是一个对象,在浏览器下: 所以研究他的属性和方法 属性: global是修饰符,代表全局检索 g ignorecase 忽略大 ...