尚硅谷nginx教程-1nginx简介

1.什么是nginx?

nginx是一个高性能的HTTP和反向代理的web服务器,同时也提供了IMAP/POP3/SMTP服务。
特点:占用内存少,并发能力强

2.nginx作为web服务器

nginx可以作为静态页面的web服务器,同时还支持CGI协议的动态语言,比如perl、php等,但是不支持Java。Java程序只能通过tomcat配合完成。nginx专为性能优化而开发,性能是其最重要的考量,实际上非常注重效率,能经受高负载的考验,有报告表明能支持高达50000个并发的连接数。更多查看https://lnmp.org/nginx.html

3.正向代理与反向代理

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

3.1 正向代理

大陆不允许直接访问Google,因此需要在浏览器端配置代理服务器,通过代理服务器去访问Google。
在客户端(如浏览器)配置代理服务器,通过代理服务器进行网络访问的过程,就称为正向代理。

3.2 反向代理

客户端对代理是无感知的,因为客户端不需要配置代理,也不知道目标服务器,只知道代理服务器。我们只需要将请求发送到反向代理服务器上,由反向代理服务器去选择目标服务器获取数据后再返回给客户端。此时 反向代理服务器和目标服务器 对外就是一个服务器,暴露的是代理服务器地址,隐藏了真实服务器的IP地址。

4.负载均衡

客户端发送多个请求到服务器,服务器处理请求。有一些可能要与数据库进行交互,服务器处理完毕后,再将结果返回给客户端。

这种架构模式对于早期相对单一的系统,并发请求相对较少的情况下是比较合适的,成本也低。但是随着信息数量的不断增长,访问量和数据量的飞速增长,以及数据业务的复杂度增加,这种架构会造成服务器响应客户端的请求日益缓慢,并发量特别大的时候,还容易导致服务器崩溃。
很明显这是服务器性能的瓶颈造成的问题,那么如何解决这种情况呢?
我们首先想到的是升级服务器的配置,比如提高CPU、加大内存等提高机器的物理性能来解决问题。

但是我们知道摩尔定律日益失效,硬件的提升已经不能满足需求了。
例如天猫双十一当天,某个热销商品的瞬时访问量是极其庞大的,那么类似上面的架构,将机器都增加到现有的顶级物理配置,都不能满足需求,那该怎么办?
上面的分析表明通过增加服务器物理配置来解决问题的方法,即纵向解决问题的方法行不通了。那么横向增加服务器的数量呢?集群的概念就这样产生了。

单台服务器解决不了,我们增加服务器的数量,然后将请求分发到各个服务器上,将原来请求集中到单个服务器上的情况,改为将请求分发到多个服务器上,将负载分发到不同的服务器上,也就是我们所说的负载均衡。

5. 动静分离

把静态资源和动态资源都部署到tomcat里面,每次请求不管是静态资源,还是动态资源,都去请求tomcat。用单服务部署所有的内容。
局限性:请求静态资源和动态资源都去请求tomcat,会带来更大的压力。

为了加快网站的解析速度,可以把动态页面和静态页面由不同的服务器来解析,加快解析速度,降低原来单个服务器的压力。

posted on 2020-04-06 19:17  singleSpace  阅读(902)  评论(0编辑  收藏  举报