一文读懂网关中间件-Nginx

本文介绍了Nginx作为一个高性能HTTP服务器、反向代理服务器和邮件代理服务器的角色,强调其在高并发场景下低资源消耗的优势。文章详细探讨了Nginx的模块化设计、多进程模型、事件驱动架构以及虚拟主机、反向代理和负载均衡功能。通过实际的业务场景,如健康码查询服务,展示了如何配置Nginx进行负载均衡,包括轮训、最少连接数、一致性哈希算法和容灾策略。此外,还讨论了配置HTTPS以确保通信安全的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、Nginx介绍

1.nginx是一个高性能HTTP服务器,反向代理服务器,邮件代理服务器,TCP/UDP反向代理服务器.

2.nginx处理请求是异步非阻塞的,在高并发下nginx 能保持低资源低消耗高性能,主要用在集群系统中用于支持负载均衡.

3.nginx对静态文件的处理速度也相当快,也可以用于前端站点的服务器.

相关视频讲解:

C++后台开发架构师学习视频

网站被攻击了,Nginx是不是该背这个锅?

网络穿透,NAT,打洞,了解p2p的秘密

二、为什么要使用Nginx?

单个系统主要用于处理客户端请求,一个系统处理客户端的请求量是有限的,当客户端的并发量超过了系统的处理能力的时候,就会导致服务器性能降低,速度变慢,直接影响用户体验,所以为了提升性能,我们会创建多个服务实例,形成集群系统用于保证高可用

那么什么样的系统业务适合使用集群系统呢?我觉得主要从2个方面来看,第一请求人数多,导致次数多,第二请求量密集,例如我们近两年常用的防疫健康码查询,我们排除与其他的业务系统接入的因素,可以说他的99%针对用户的业务其实就是查询,而且并发量和请求数也是非常庞大的,所以就很适合使用集群系统。

三、查询分流Nginx原理

1.模块化设计

高度模块化的设计是 Nginx的架构基础。在Nginx中,除了少量的核心代码,其他一切皆为模块,所有模块间是分层次、分类别的,Nginx 官方共有五大类型的模块:核心模块、配置模块、事件模块、HTTP模块、mail模块,5种模块中,配置模块和核心模块是与 Nginx 框架密切相关的。而事件模块则是 HTTP 模块和 mail 模块的基础。HTTP 模块和 mail 模块的“地位”类似,它们都是更关注于应用层面并且引用基础核心模块。

2.多进程模型

与Memcached的经典多线程模型相比,Nginx是经典的多进程模型,Nginx启动后在后台运行,后台进程包含一个master进程和多个worker进程,可以在配置中设置工作进程数,一般根据服务器的Cpu核心数,来决定工作进程数是多少,例如我的电脑核心数是12,那可以在配置文件中设置worker_processes为12,那么在进程中可以看到 一个13个nginx运行实例。

3.事件驱动架构

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值