Nginx的基本概念和原理
目录
- 一、Nginx基本概念
- 二、反向代理
- 三、负载均衡
- 四、动静分离
- 五、原理
- 六、worker如何工作
一、Nginx基本概念
(engine x)是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。其特点是占有内存少,并发能力强,事实上nginx
的并发能力在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。
Nginx专为性能优化而开发,性能是器最重要的考量,实现上非常注重效率,能经受高负载的考验,据报告能支持高达50,000个并发连接数。
Nginx不仅能做反向代理,实现负载均衡;还能可以作正向代理来进行上网等功能。
二、反向代理
在客户端(浏览器)配置代理服务器,通过代理服务器进行互联网访问。代理对象是客户端,不知道服务端是谁。
客户端不需要任何配置就能访问,只需要将请求发送到反向代理服务器,由反向代理服务器去选择目标服务器,获取数据后再返回给客户端。对外就一个服务器,暴露的是反向代理服务器地址,隐藏了真实服务器IP地址。代理对象是服务端,不知道客户端是谁。
三、负载均衡
客户端发送多个请求到服务器,服务器处理请求,有些可能要访问数据库,服务器处理完毕后再将结果返回客户端。
这种架构模式单一,适合并发请求少的情况,但并发量大的时候如何解决?
首先可能想到升级服务器配置,但硬件的性能提升不能满足日益增长的需求,此时想到服务器集群,增加服务器数量,然后将原先请求单个服务器的情况改为将请求分发到多个服务器上,将负载分发到多个服务器上,也就是我们讲的
四、动静分离
为了加快网站的解析速度,可以把动态页面和静态页面有不同的服务器来解析,减少服务器压力,加快解析速度。
五、原理
mater&worker
master
接收信号后将任务分配给worker进行执行,worker可有多个。
六、worker如何工作
客户端发送一个请求到master后,worker获取任务的机制不是直接分配也不是轮询,而是一种争抢的机制,“抢”到任务后再执行任务,即选择目标服务器tomcat等,然后返回结果。
worker_connection
发送请求占用了woker两个或四个连接数。
- 普通的静态访问最大并发数是:
worker_connections *worker_processes/ 2 /2/2
- 若是 HTTP 作 为反向代理来说,最大并发数量应该是
worker_connections *worker_processes/ 4 /4/4
。
当然了,worker数也不是越多越好,worker数和服务器的CPU数相等时最适宜的。
优点:
- 可以使用
nginx –s reload
热部署,利用 nginx 进行热部署操作 - 每个 woker 是独立的进程,若其中一个woker出现问题,其他继续进行争抢,实现请求过程,不会造成服务中断
到此这篇关于Nginx的基本概念和原理的文章就介绍到这了,更多相关Nginx概念和原理内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!
相关推荐
-
Nginx反向代理与负载均衡概念理解及模块使用
目录 Nginx负载均衡概念 upstream模块的使用方法 upstream模块说明 http_proxy_module模块 完整的案例 Nginx负载均衡概念 准确来说,Nginx是作为Nginx Proxy反向代理使用的,因为这个反向代理功能表现出负载均衡的效果,所以称之为Nginx负载均衡.实现负载均衡的效果主要依赖两个组件: ngx_http_proxy_module ngx_http_upstream_module 前者是proxy代理模块,用于把请求传给服务器节点或upstream
-
Nginx进程管理和重载原理详解
进程结构图 Nginx是多进程结构,多进程结构设计是为了保证Nginx的高可用高可靠,包含: master进程:父进程,负责worker进程的管理 worker进程:子进程,worker进程一般配置与服务器CPU核数相同,worker进程用来处理具体请求. cache进程:也是子进程,包括cache manager和cache loader进程,主要是反向代理做缓存使用. 注:多进程相对于多线程之所以能够保证高可用与高可靠是因为进程间地址空间是独立的,进程间的任务不会相互影响,相对多线程更加耗费
-
Nginx使用Lua模块实现WAF的原理解析
目录 一.WAF产生的背景 二.什么是WAF 三.工作原理 四.WAF作用 五.WAF和传统防火墙的区别 六.WAF和DDos 七.Nginx WAF功能 八.Nginx Waf防护流程 九.基于Nginx实现的WAF 9.1安装依赖包 9.2安装LuaJIT2.0 9.3安装ngx_devel_kit 9.4安装lua-nginx-module 9.5安装Nginx 9.6安装ngx_lua_waf 9.7测试效果 前言:最近一段时间在写加密数据功能,对安全相关知识还是缺少积累,无意间接触到了
-
NGINX 权限控制文件预览和下载的实现原理
目录 一.实现原理 二.实现步骤 1. NGINX配置 2. JAVA SPRINGBOOT 后台权限验证 2.1 权限校验文件下载 2.2 权限校验文件预览 三.扩展功能 1. 下载统计.访问日志 2. 下载限速 3. 防盗链 4. X-SENDFILE @date: 2020-07-31 06:00 基于 Nginx + Java(SpringBoot) 实现带权限验证的静态文件服务器,支持文件下载.PDF预览和图片预览. 需要注意的是,无需权限判断的图片不建议使用此方法,大量的图片访问会增
-
详解Nginx 工作原理
Nginx工作原理 Nginx由内核和模块组成. Nginx本身做的工作实际很少,当它接到一个HTTP请求时,它仅仅是通过查找配置文件将此次请求映射到一个location block,而此location中所配置的各个指令则会启动不同的模块去完成工作,因此模块可以看做Nginx真正的劳动工作者.通常一个location中的指令会涉及一个handler模块和多个filter模块(当然,多个location可以复用同一个模块).handler模块负责处理请求,完成响应内容的生成,而filter模块对
-
Nginx的基本概念和原理
目录 一.Nginx基本概念 二.反向代理 三.负载均衡 四.动静分离 五.原理 六.worker如何工作 一.Nginx基本概念 (engine x)是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务.其特点是占有内存少,并发能力强,事实上nginx的并发能力在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度.京东.新浪.网易.腾讯.淘宝等. Nginx专为性能优化而开发,性能是器最重要的考量,实现上非常注重效率,能经受高负载的考验,
-
Java反射机制概念、原理与用法总结
本文实例讲述了Java反射机制概念.原理与用法.分享给大家供大家参考,具体如下: 反射机制是什么 反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法:对于任意一个对象,都能够调用它的任意一个方法和属性:这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制. 反射机制能做什么 反射机制主要提供了以下功能: ① 在运行时判断任意一个对象所属的类: ② 在运行时构造任意一个类的对象: ③ 在运行时判断任意一个类所具有的成员变量和方法: ④ 在运行时调用任意一个
-
MySQL存储过程概念、原理与常见用法详解
本文实例讲述了MySQL存储过程概念.原理与常见用法.分享给大家供大家参考,具体如下: 1.存储过程的概念 在一些语言中,如pascal,有一个概念叫"过程"procedure,和"函数"function,在php中,没有过程,只有函数. 过程:封装了若干条语句,调用时,这些封装体执行 函数:是一个有返回值的"过程" 总结:过程是一个没有返回值的函数 在MySQL中: 我们把若干条sql封装起来,起个名字 -- 过程 把此过程存储在数据库中 --
-
MySQL触发器概念、原理与用法详解
本文实例讲述了MySQL触发器概念.原理与用法.分享给大家供大家参考,具体如下: 1.触发器的概念 触发器(trigger)是MySQL提供给程序员和数据分析员来保证数据完整性的一种方法,它是与表事件相关的特殊的存储过程,它的执行不是由程序调用,也不是手工启动,而是由事件来触发,比如当对一个表进行操作(insert,delete, update)时就会激活它执行.--百度百科 上面是百度给的触发器的概念,我理解的触发器的概念,就是你执行一条sql语句,这条sql语句的执行会自动去触发执行其他的s
-
PHP基础之输出缓冲区基本概念、原理分析
本文实例讲述了PHP基础之输出缓冲区.分享给大家供大家参考,具体如下: 一.概念 在PHP运行的过程中,可以将会产生输出的函数或操作结果暂时保存在PHP的缓冲区,只有当缓冲区满了.或者PHP运行完毕.或者在必要时候进行输出,才会将数据输出到浏览器,此缓冲数据的区域称为PHP的输出缓冲区(OB). 二.原理 ①使用了缓冲区之后,当执行PHP的时候,如果碰到了echo.print_r之类的会输出数据的代码(实际上许多函数都会产生输出),PHP就会将要输出的数据放到PHP自身的缓冲区,等待输出: ②当
-
探究Nginx中reload流程的原理真相
今天这篇文章主要来介绍下 Nginx 的 reload 流程.实际上在之前文章中,在更改了 nginx 配置文件时,我们都会执行 nginx -s reload 命令,我们执行这条命令的原因是希望 nginx 不停止服务始终在处理新的请求的同时把 nginx 的配置文件平滑的把旧的 nginx.conf 配置更新为新的 nginx.conf 配置. 这样一个功能对于 nginx 非常有必要,但是有时候我们会发现在执行 nginx -s reload 命令后,worker 子进程的数量会变多了,这
-
Nginx URL重写rewrite机制原理及使用实例
URL重写有利于网站首选域的确定,对于同一资源页面多条路径的301重定向有助于URL权重的集中 Nginx URL重写(rewrite)介绍 和apache等web服务软件一样,rewrite的组要功能是实现RUL地址的重定向.Nginx的rewrite功能需要PCRE软件的支持,即通过perl兼容正则表达式语句进行规则匹配的.默认参数编译nginx就会支持rewrite的模块,但是也必须要PCRE的支持 rewrite是实现URL重写的关键指令,根据regex(正则表达式)部分内容,重定向到r
-
详解nginx+php执行请求的工作原理
php工作原理 首先先了解下常听说的cgi,php-cgi,fastcgi,php-fpm到底是什么关系,帮助了解php的工作原理 cgi协议 cgi协议用来确定webserver(例如nginx),也就是内容分发服务器传递过来什么数据,什么样格式的数据 php-cgi进程解释器 php-cgi是php的cgi协议进程解释器,每次启动时,需要经历加载php.ini文件->初始化执行环境->处理请求->返回内容给webserver->php-cgi进程退出的流程 fastcgi协议
-
Docker基本概念和底层原理解析
目录 1.Docker的底层原理 2.Docker中常用的基本概念 3.run命令的运行流程 4.为什么Docker比VM快 Docker架构图: 我们依照Docker架构图进行Docker基础概念的说明. 1.Docker的底层原理 Docker是一个Client-Server结构的系统,Docker守护进程运行在主机上,然后通过Socket连接从客户端访问,守护进程从客户端接受命令并管理运行在主机上的容器.容器是一个运行时环境,就好比是我们前面说到的集装箱. 例如架构图中的客户端(Clien
随机推荐
- Oracle触发器用法实例详解
- JavaScript获取Url里的参数
- javascript string字符串优化问题
- Android屏幕锁屏弹窗的正确姿势DEMO详解
- js中关于new Object时传参的一些细节分析
- js密码强度校验
- 原始XMLHttpRequest方法详情回顾
- 5个书写JavaScript代码的坏习惯,看看你中枪了没?
- javascript 3d 逐侦产品展示(核心精简)
- 探索PowerShell(一) 初识 PowerShell
- 浅谈apache和nginx的rewrite的区别
- C# 操作符之三元操作符浅析
- Android自定义View的三种实现方式总结
- C#使用iTextSharp封装的PDF文件操作类实例
- 浅谈Android中Service的注册方式及使用
- Python获取当前脚本文件夹(Script)的绝对路径方法代码
- Java注解的Retention和RetentionPolicy实例分析
- koa上传excel文件并解析的实现方法
- 易语言实现多线程计算的代码
- Docker容器运行ASP.NET Core的实现步骤