| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 系统运维 -> Nginx 详解 -> 正文阅读 |
|
[系统运维]Nginx 详解 |
前提最近一直在网上学习,突然对Nginx很感兴趣就学了起来。在网上浏览了许多的博客,但是都没有很浅显的告诉我Nginx是什么、作用是什么,能够带来什么效果,在B站看了<狂神说>的Nginx的视频之后,自己梳理了知识点,了解了Nginx的作用。 本文章只是简单阐述Nginx,方便对Nginx有了初步了解。并不会对里面的技术进行详细分析,适合初学者。 运用场景正常情况下,我们的项目在一个服务器下就可以跑的起来,这对与小规模访问量是没有问题的。如果访问的人数慢慢增多,tomcat服务器还能够快速响应吗?几千人可以,几万人呢,几十万人呢,这个时候一台服务器是顶不住的。 这时候该怎么办呢? 加内存?可以使用redis把更多的数据保存在内存中,减少数据库的访问,达到快速的访问。但是这解决不解决根本性问题,即高并发下单台服务器承受压力过大,会导致内存突然骤升到100%。 那有没有什么好的办法呢?既然单台服务器承受压力过大,那我们就多加几台服务器,缓解单台服务器的压力。比如我们可以在三台服务器上都部署项目,如果客户端的请求,能均匀的分到这三台服务器上,是不是可以缓解单台服务器的压力了呢?这样似乎很有道理。 请看下面的图形: 我们假设服务器2、服务器3和服务器4为我们部署的服务器,现在有个问题,客户端的请求只能访问一个,我们有三台服务器(对应三个不同的IP),客户端怎么知道请求的事哪个服务器呢?有一个糟糕方法,让前端知道每个模块去访问哪个服务器,这简直是槽糕透了! 现在问题是:怎么能够在改动很少的情况下,通过URL访问三台服务器,即客户端通过访问一个连接,能够自动映射到某一台服务器上。 这就需要我们的Nginx出场了。 Nginx是什么Nginx支持50000个并发连接数,但是tomcat只支持500,就多得并发数来讲,用nginx也是很好的。 个人理解:Nginx相当于一个中间件,在客户端和服务器之间齐了桥梁的作用。Nginx负责把客户端的请求,分发到各台服务器,然后再返回。解决了客户端如何访问多台服务器的问题。 上面的文字作为初步了解,接下来讲一下上面问题使用Nginx来解决,这样来了解Nginx是什么。 解决措施:我们在客户端和服务器之间搭建Nginx,在Nginx中配置三台服务器IP地址和映射端口(三台服务器的IP和对应的端口不同)。比如项目地址是www.baidu.com,当你访问这个地址的时候,Nginx会这个请求映射到服务器2上,也有可能是3.当你下一次请求时,这个请求会到服务器3上。这样就解决了,把所有的请求都映射到一台服务器上,Nginx可以把请求均衡的分布在三台服务器上,这样的请求速度会快很多。 Nginx作用反向代理概念: 反向代理服务器位于用户与目标服务器之间,但是对于用户而言,反向代理服务器就相当于目标服务器,即用户直接访问反向代理服务器就可以获得目标服务器的资源。同时,用户不需要知道目标服务器的地址,也无须在用户端作任何设定。反向代理服务器通常可用来作为Web加速,即使用反向代理作为Web服务器的前置机来降低网络和服务器的负载,提高访问效率。【来自百度百科】 图片来自狂神说 自述: 反向代理的作用是应用部署在多台服务器上,然后由Nginx对外提供一个接口,这样客户端访问服务器时,完全感觉不到是访问多台服务器。后台由Nginx控制多台服务器的路由,这样方便管理多台服务器时,路由控制。当某一台服务器宕机时,Nginx自动把路由映射到其他服务器。 负载均衡概念: 负载均衡建立在现有网络结构之上,它提供了一种廉价有效透明的方法扩展网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性。 负载均衡(Load Balance)其意思就是分摊到多个操作单元上进行执行,例如Web服务器、FTP服务器、企业关键应用服务器和其它关键任务服务器等,从而共同完成工作任务。【来自百度百科】 【图片来自狂神说】 自述: 负载均衡的意思是:降低单台服务器的压力,使多台服务器分担压力,这样能够保持服务器的告诉运转。 当一台服务器不能满足业务需求时,我们要扩充多台服务器,把应用部署在多台服务器上。Nginx会根据你所配置的请求,去访问服务器。比如:第一次请求来了则访问1服务器,当第二次请求来时则访问2服务器,再来一个请求时,访问3服务器。分解了单台服务器的压力,保障了服务器的告诉运转,提高应用处理的效率。如果某一个服务器配置较好,还可以配置把多个请求访问到该服务器上。【需要在Nginx中进行配置】 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/15 6:20:31- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |