首先介绍一下为什么需要nginx?
在低并发场景下(也就是用户量特别少的情况下),我们只需要部署一台服务器就能满足用户数量少的需求。
但是如果用户量逐渐增多,只有一台服务器是不够的。于是我们需要部署多台服务器。
可能有几个项目启动在不同的服务器上,当用户需要访问,我们需要一台代理服务器来处理这些请求并转发到各个服务器上。
于是就有了nginx。来当这个代理服务器。
nginx的特点:
是一个高性能HTTP和反向代理web服务器,内存少,并发能力强。
nginx的几个最重要的作用:
一、反向代理:
反向代理的意思是:用代理服务器来接收网络请求,然后把请求转发给内网中的服务器,并将从内网服务器得到的结果返回给网络请求的客户端。
正向代理和反向代理的区别:
正向代理:发生在客户端,由用户主动。比如翻墙软件,用户主动去访问代理服务器,让代理服务器去找外网资源,然后把结果返回给客户端。
反向代理:发生在服务端,用户不知道代理服务器的存在。
举个例子:
下图是前端请求地址,端口为81:
后端的地址如下,应该是http://localhost:8080/admin/employee/login
那么前端的请求的地址和后端接口地址不一致是如何请求成功的??
原理:nginx反向代理,将前端发送的请求由nginx转发到后端服务器。
下图是nginx的配置文件,它监听的是81端口,服务器名是本地(http://localhost:81)。如果匹配到api字符串(http://localhost:81/api),就转发到proxy_pass对应的地址(http://localhost:8080/admin)。如果后面还有字符串就拼接到目标地址后面(http://localhost:8080/admin/employee/login)。
二、负载均衡:
负载均衡是为了尽可能的将网络请求平均分配到各个服务器上,以提高系统的整体性能和速度。
nginx的三种负载均衡策略:轮询,加权轮询,Ip_hash。
1、轮询(默认):轮流分配
2、加权轮询:weight代表权重,默认值为1,值越大代表被分配到的请求越多。
3、Ip_hash:每个请求按访问Ip的hash结果分配,这样每一个访客就固定访问
三、动静分离:
在软件开发中,有些请求是需要后台处理的,成为动态文件,相反,不需要后台处理的称为静态文件(比如css ,js,html等文件)。
动静分离的意思是将动态请求和静态请求分离开来,动态请求由tomcat处理,静态请求由nginx处理。这样就提高了资源解析速度!
nginx的配置文件详解就去看第一篇文章。
借鉴文章:
nginx学习,看这一篇就够了:下载、安装。使用:正向代理、反向代理、负载均衡。常用命令和配置文件,很全-CSDN博客
Nginx快速入门-KuangStudy-文章