[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 ...
随机推荐
- ACM山东工商 Contest - 软件171-2 第1次测验
#include <stdio.h> #include <stdlib.h> typedef struct Node { int data; struct Node *next ...
- 简单git使用命令
// 查看分支:git branch // 创建分支:git branch <name> // 切换分支:git checkout <name> // 创建+切换分支:git ...
- redis初步了解
redis是什么 redis是一个开源的内存数据库,拥有非常优秀的性能 如何安装redis 在linux下安装软件有几种方式:二进制文件安装和源码安装,由于redis不依赖任何外部库,所以源码安装非常 ...
- 修改应用进程open file值
本文用于记录java应用日志too many open files报错解决方法 操作系统:RHEL5.8 一.修改配置文件 1.vim /etc/security/limits.conf 加上:* s ...
- C语言 基础
内存的定义 在学习python的时候 了解过内存的管理机制,例如引用计数,垃圾回收,小内存池的概念. 但是并不了解内存究竟是个什么东西?不了解内存的实际存储方式. Mac OS Mojave 处理器 ...
- Git 概念
Git 概念 一.Git 工作流程 ~ Workspace:工作区 ~ Index/ Stage:暂存区 ~ Repository:仓库区(或本地仓库) ~ Remote:远程仓库 工作区 进行开发改 ...
- sosreport-汇总收集linux系统信息
有时候我们想将Linux服务器信息一次性查询并导出发送给他人,我们可以使用这个sosreport这个工具 安装 yum install sos -y 收集信息 sosreport 收集到的信息默认保 ...
- Linux ①
目录 一.计算机简单认识 二.linux初始 三.安装虚拟机 四.安装Linux系统 五. 使用xshell 6 进行远程控制 六.linux文档与目录结构 七.常用命令 一.计算机简单认识 1.服务 ...
- java前台线程和后台线程
main()函数即主函数,是一个前台线程,前台进程是程序中必须执行完成的,而后台线程则是java中所有前台结束后结束,不管有没有完成,后台线程主要用与内存分配等方面. ...
- fiddler 按条件过滤
使用fiddler抓包过程中最希望获取自己想要的数据,不重要的信息最希望的是过滤,如果重要和不重要的数据都展示对我们在寻找资源的时候产生了很大的干扰,所以我们需要按条件过滤: 1.启用fiddler ...