一、单体项目出现瓶颈。
并发量小,用户使用的少,在低并发的情况下,一个jar包启动应用就可以了,然后内部tomcat返回内容给用户
慢慢的,平台的用户越来越多,并发量越来越大,单个服务器已经满足不了要求了。
于是横向扩展,增加服务器的数量,这个时候项目启动在不同的服务器上,用户需要访问就需要增加一个代理服务器了,通过代理服务器帮我们转发和处理请求。
我们希望这个代理服务器可以帮助我们接收用户的请求,然后将用户的请求按照规则帮我们转发到不同的服务器节点上,这个过程用户时无感知的,用户并不知道是哪一个服务器返回的结果,我们还希望他可以按照服务器的性能提供不同的权重选择,所以使用Nginx;
二、Nginx的作用
HTTP代理,反向代理,作为WEB服务器最常用的功能之一,尤其是反向代理。
正向代理:代理客户端
反向代理:代理服务器端
三、负载均衡
Nginx提供的负载均衡策略有两种:内置策略和扩展策略。内置策略为轮询,加权轮询,IP HASH
扩展策略,就天马行空
使用过 tomcat 做过并发测试的伙伴应该知道其负载,当每秒 300 个请求同时访问tomcat 时,tomcat 已经开始承受不住,出现波动,那么大型网站是如何处理高并发的呢?
以下是高并发场景下,实现负载均衡的一个分布式架构图。常见互联网分布式架构,分为客户端层、反向代理 nginx 层、站点层、服务层、数据层。只需要实现“将请求/数据均匀分摊到多个操作单元上执行”,就能实现负载均衡。
Session一般保存在tomcat 中,但是很多台服务器有很多台tomcat ,也就是n个session有n个tomcat ,一般是无法共享session会话的 ,(一般是使用Redis 做session 共享)
负载均衡:轮循,加权轮循策略,保证服务器性能最大化
加权轮询:
动静分离:有些请求需要后台处理,有些不用,不需要后台处理请求的文件称为静态文件,动静资源做拆分,根据静态资源的特点,做缓存处理。
四、Nginx的安装
1.官网下载(这里是使用linux系统来进行安装)
2.上传到自己的服务器,我这里使用的是虚拟机,放在usr/local/nginx-1.18.0.tar.gz
3.开始解压文件,tar -zxvf nginx-1.18.0.tar.gz
4.解压之后,配置configure文件
./configure
5.执行make指令。 路径 cd/usr/local/nginx-1.18.0.tar
或者yum install nginx
6.执行make install指令
7.检查是否安装了nginx
8.运行nginx
9.Nginx默认是使用的是80端口。
10。查看nginx配置文件指令 cd/usr/local/nginx/conf/nginx.conf
11、修改配置文件 cat nginx.conf 或者vim nginx.conf
12、重新加载配置文件。[root@local’host sbin]# ./nginx -s reload
13.关闭nginx
14.Nginx常用指令
cd /usr/local/nginx/sbin
- ./nginx 启动
- ./nginx -s stop 停止
- ./nginx -s quit 安全退出
- ./nginx -s reload 重新加载配置文件
ps aux|grep nginx 查看nginx进程
15.相关指令
多个端口开启自己的程序,
java -jar -server.port =8081 指定端口号