Nginx的基本概念和原理


Posted in Servers onMarch 21, 2022

一、Nginx基本概念

(engine x)是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。其特点是占有内存少,并发能力强,事实上nginx的并发能力在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。

Nginx专为性能优化而开发,性能是器最重要的考量,实现上非常注重效率,能经受高负载的考验,据报告能支持高达50,000个并发连接数。

Nginx不仅能做反向代理,实现负载均衡;还能可以作正向代理来进行上网等功能。

二、反向代理

在客户端(浏览器)配置代理服务器,通过代理服务器进行互联网访问。代理对象是客户端,不知道服务端是谁。

Nginx的基本概念和原理

客户端不需要任何配置就能访问,只需要将请求发送到反向代理服务器,由反向代理服务器去选择目标服务器,获取数据后再返回给客户端。对外就一个服务器,暴露的是反向代理服务器地址,隐藏了真实服务器IP地址。代理对象是服务端,不知道客户端是谁。

Nginx的基本概念和原理

三、负载均衡

客户端发送多个请求到服务器,服务器处理请求,有些可能要访问数据库,服务器处理完毕后再将结果返回客户端。

这种架构模式单一,适合并发请求少的情况,但并发量大的时候如何解决?

Nginx的基本概念和原理

首先可能想到升级服务器配置,但硬件的性能提升不能满足日益增长的需求,此时想到服务器集群,增加服务器数量,然后将原先请求单个服务器的情况改为将请求分发到多个服务器上,将负载分发到多个服务器上,也就是我们讲的

Nginx的基本概念和原理

四、动静分离

为了加快网站的解析速度,可以把动态页面和静态页面有不同的服务器来解析,减少服务器压力,加快解析速度。

Nginx的基本概念和原理

五、原理

mater&worker

Nginx的基本概念和原理

master接收信号后将任务分配给worker进行执行,worker可有多个。

Nginx的基本概念和原理

六、worker如何工作

客户端发送一个请求到master后,worker获取任务的机制不是直接分配也不是轮询,而是一种争抢的机制,“抢”到任务后再执行任务,即选择目标服务器tomcat等,然后返回结果。

Nginx的基本概念和原理

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概念和原理内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Servers 相关文章推荐
Nginx+Tomcat实现负载均衡、动静分离的原理解析
Mar 31 Servers
使用 Apache Dubbo 实现远程通信(微服务架构)
Feb 12 Servers
Nginx的基本概念和原理
Mar 21 Servers
nginx容器方式反向代理实战
Apr 18 Servers
nginx日志格式分析和修改
Apr 28 Servers
tomcat下部署jenkins的方法
May 06 Servers
阿里云国际版 使用Nginx作为HTTPS转发代理服务器
May 11 Servers
apache ftpserver搭建ftp服务器
May 20 Servers
git stash(储藏)的用法总结
Jun 25 Servers
nginx之queue的具体使用
Jun 28 Servers
教你nginx跳转配置的四种方式
Jul 07 Servers
Nginx代理Redis哨兵主从配置的实现
Jul 15 Servers
解决xampp安装后Apache无法启动
Nginx图片服务器配置之后图片访问404的问题解决
Shell脚本一键安装Nginx服务自定义Nginx版本
Nginx实现会话保持的两种方式
Mar 18 #Servers
Nginx实现负载均衡的项目实践
Mar 18 #Servers
Nginx中使用Lua脚本与图片的缩略图处理的实现
Mar 18 #Servers
nginx刷新页面出现404解决方案(亲测有效)
Mar 18 #Servers
You might like
深入phpMyAdmin的安装与配置的详细步骤
2013/05/07 PHP
为你总结一些php信息函数
2015/10/21 PHP
php提交过来的数据生成为txt文件
2016/04/28 PHP
使javascript也能包含文件
2006/10/26 Javascript
几个javascript操作word的参考代码
2009/10/26 Javascript
谈谈JavaScript中的函数与闭包
2013/04/14 Javascript
js获取元素到文档区域document的(横向、纵向)坐标的两种方法
2013/05/17 Javascript
解决ueditor jquery javascript 取值问题
2014/12/30 Javascript
原生JavaScript编写俄罗斯方块
2015/03/30 Javascript
js实现同一个页面多个渐变效果的方法
2015/04/10 Javascript
简化版手机端照片预览组件
2015/04/13 Javascript
jQuery 自定义下拉框(DropDown)附源码下载
2016/07/22 Javascript
Javascript将字符串日期格式化为yyyy-mm-dd的方法
2016/10/27 Javascript
通过bootstrap全面学习less
2016/11/09 Javascript
微信小程序授权获取用户详细信息openid的实例详解
2017/09/20 Javascript
原生JS实现DOM加载完成马上执行JS代码的方法
2018/09/07 Javascript
发布Angular应用至生产环境的方法
2018/12/10 Javascript
js屏蔽退格键(backspace或者叫后退键与F5)
2019/02/10 Javascript
vue生命周期与钩子函数简单示例
2019/03/13 Javascript
laravel实现中文和英语互相切换的例子
2019/09/30 Javascript
有关vue 开发钉钉 H5 微应用 dd.ready() 不执行问题及快速解决方案
2020/05/09 Javascript
[57:53]DOTA2上海特级锦标赛主赛事日 - 2 败者组第二轮#3OG VS VP
2016/03/03 DOTA
python调用Moxa PCOMM Lite通过串口Ymodem协议实现发送文件
2014/08/15 Python
python实现从web抓取文档的方法
2014/09/26 Python
在Django中管理Users和Permissions以及Groups的方法
2015/07/23 Python
浅谈flask源码之请求过程
2018/07/26 Python
python 写函数在一定条件下需要调用自身时的写法说明
2020/06/01 Python
python 如何用urllib与服务端交互(发送和接收数据)
2021/03/04 Python
伦敦最著名的老字号百货公司:Selfridges(塞尔福里奇百货)
2016/07/25 全球购物
Myprotein葡萄牙官方网站:英国优质运动营养品牌
2016/09/12 全球购物
国庆放假通知怎么写
2015/07/30 职场文书
股东合作协议书模板2篇
2019/11/05 职场文书
golang中的并发和并行
2021/05/08 Golang
Nginx动静分离配置实现与说明
2022/04/07 Servers
搭建Yolov5服务器
2022/04/30 Servers
Mysql中mvcc各场景理解应用
2022/08/05 MySQL