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 proxy_cache 缓存配置详解
Mar 31 Servers
Nginx设置日志打印post请求参数的方法
Mar 31 Servers
nginx location优先级的深入讲解
Mar 31 Servers
Windows下用Nginx配置https服务器及反向代理的问题
Sep 25 Servers
Nginx+Windows搭建域名访问环境的操作方法
Mar 17 Servers
Windows server 2012 配置Telnet以及用法详解
Apr 28 Servers
Tomcat弱口令复现及利用
May 06 Servers
nginx实现多geoserver服务的负载均衡
May 15 Servers
关于windows server 2012 DC 环境 重启后蓝屏代码:0xc00002e2的问题
May 25 Servers
git中cherry-pick命令的使用教程
Jun 25 Servers
Nginx代理Redis哨兵主从配置的实现
Jul 15 Servers
Valheim服务器 Mod修改安装教程 【ValheimPlus】
Dec 24 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
基于pear auth实现登录验证
2010/02/26 PHP
php cookie的操作实现代码(登录)
2010/12/29 PHP
php从字符串创建函数的方法
2015/03/16 PHP
php中类和对象:静态属性、静态方法
2017/04/09 PHP
Laravel框架实现的使用smtp发送邮件功能示例
2019/03/12 PHP
使用正则替换变量
2007/05/05 Javascript
IE6不能修改NAME问题的解决方法
2010/09/03 Javascript
自己动手制作jquery插件之自动添加删除行功能介绍
2011/10/14 Javascript
javascript当中的代码嗅探扩展原生对象和原型(prototype)
2013/01/11 Javascript
js弹出层(jQuery插件形式附带reLoad功能)
2013/04/12 Javascript
js模拟点击以提交表单为例兼容主流浏览器
2013/11/29 Javascript
使用jQuery实现验证上传图片的格式与大小
2014/12/03 Javascript
基于bootstrap插件实现autocomplete自动完成表单
2016/05/07 Javascript
JS中微信小程序自定义底部弹出框
2016/12/22 Javascript
angular实现图片懒加载实例代码
2017/06/08 Javascript
详解vue2.0的Element UI的表格table列时间戳格式化
2017/06/13 Javascript
jQuery、layer实现弹出层的打开、关闭功能
2017/06/28 jQuery
详解如何webpack使用DllPlugin
2018/09/30 Javascript
关于自定义Egg.js的请求级别日志详解
2018/12/12 Javascript
axios解决高并发的方法:axios.all()与axios.spread()的操作
2020/11/09 Javascript
[01:14]3.19DOTA2发布会 三代刀塔人第二代
2014/03/25 DOTA
[08:44]和酒神一起战斗 DOTA2教你做大人
2014/03/27 DOTA
Python下singleton模式的实现方法
2014/07/16 Python
使用Python操作Elasticsearch数据索引的教程
2015/04/08 Python
浅析Python中MySQLdb的事务处理功能
2016/09/21 Python
python和shell监控linux服务器的详细代码
2018/06/22 Python
Windows下将Python文件打包成.EXE可执行文件的方法
2018/08/03 Python
Python数据类型之列表和元组的方法实例详解
2019/07/08 Python
PyQT5速成教程之Qt Designer介绍与入门
2020/11/02 Python
诉讼代理人授权委托书
2014/04/08 职场文书
缓刑人员思想汇报500字
2014/09/12 职场文书
2014广电局实施党的群众路线教育实践活动方案思想汇报
2014/09/22 职场文书
上班时间打瞌睡检讨书
2014/09/26 职场文书
颐和园导游词
2015/01/30 职场文书
邀请函格式范文
2015/02/02 职场文书
在校证明模板
2015/06/17 职场文书