亿级并发|day06-Nginx高级应用

0 前期准备

Nginx
链接:https://pan.baidu.com/s/1Quep0N9cLmHqMIksWs88kg
密码:mtg2

Tomcat
链接:https://pan.baidu.com/s/16Z8gy2OJezVGEU0LXrwSjw
密码:x4db

1 服务代理

1.1 需求

要求用户访问 http://manage.jt.com/index 时,访问京淘后台页面

1.2 编辑配置文件

#后台管理系统
server {
	listen		80;
	server_name  manage.jt.com;

	location / {
	
		proxy_pass http://localhost:8091;
	}
}

1.3 页面效果

在这里插入图片描述

2 Tomcat集群部署

2.1 Windows中部署tomcat集群

2.1.1 准备3台tomcat

在这里插入图片描述

2.1.2 修改配置文件

启动3台tomcat,修改对应的端口号
1.修改8005端口
在这里插入图片描述

2.修改8080端口
在这里插入图片描述

3.修改8009端口
在这里插入图片描述

2.1.3 项目发布

将原有的ROOT文件删除,部署新的war包,之后重启tomcat服务
在这里插入图片描述

2.2 基于Nginx实现负载均衡

2.2.1 轮询策略

特点
根据配置文件的顺序,依次访问不同的tomcat服务器。

配置文件:

#配置tomcat负载均衡  1.轮询
upstream jt {
	server localhost:8091;
	server localhost:8092;
	server localhost:8093;
}

#后台管理系统
server {
	listen		80;
	server_name  manage.jt.com;

	location / {
		proxy_pass http://jt;
	}
}

2.2.2 权重

特点
根据服务器处理能力的不同,动态划分请求,处理能力越高,所处理的请求越多。

配置文件:

#配置tomcat负载均衡  1.轮询  2.权重
upstream jt {
	server localhost:8091 weight=6;
	server localhost:8092 weight=3;
	server localhost:8093 weight=1;
}

2.2.3 IP_HASH

实际问题
采用集群方式不能实现用户的session共享,因为不同的tomcat之间是物理隔离,如何解决?

专业术语
Session黏着:指Session共享

解决方案
A:采用SessionId进行url重写
优点:可以实现Session共享,Cookie禁用。
缺点:效率太低

B:使用Nginx中IP_HASH技术,能够根据用户的IP动态的绑定到一台服务器中,变相的实现Session共享。IP_HASH优先级最高,配置后轮询和权重不生效。
缺点:
1.如果服务器宕机,用户访问受限。
2.使用IP_HASH导致负载不均。
3.安全性不好。

C:实现单点登录(SSO)

2.2.4 Nginx故障迁移

  1. 手动下线
    server localhost:8091 weight=6 down;

  2. 备用机机制
    server localhost:8093 weight=1 backup;

  3. 设定超时时间
    proxy_connect_timeout 3;
    proxy_read_timeout 3;
    proxy_send_timeout 3;

  4. 健康监测
    说明:在规定的周期内,用户会通过健康监测,检查当前的服务器是否可用。
    如果发现服务器宕机,则在当前的周期内不会再将请求发往故障机,直到下个周期;故障机修复后,可以在下一个周期后继续提供服务。
    server localhost:8091 max_fails=1 fail_timeout=60s;

5.代码测试

#配置tomcat负载均衡  1.轮询  2.权重  3.ip_hash方式
upstream jt {
	#ip_hash;		
	server localhost:8091 max_fails=1 fail_timeout=60s;
	server localhost:8092 max_fails=1 fail_timeout=60s;
	server localhost:8093 max_fails=1 fail_timeout=60s;
}

#后台管理系统
server {
	listen		80;
	server_name  manage.jt.com;

	location / {
		proxy_pass http://jt;
		proxy_connect_timeout       3;  
		proxy_read_timeout          3;  
		proxy_send_timeout          3; 
	}
}

2.2.5 公司中服务器部署步骤

  1. 根据本次部署的策略,将服务器进行分类。
  2. 将需要部署的服务器进行下线down。
  3. 将war包发布到指定的tomcat服务器中,之后进行测试,如果测试无误将该服务器上线即可。
  4. 之后依次上线其他的服务器。

3 Linux中集群部署

3.1 虚拟机介绍

3.1.1 虚拟机参数

内存:如果设定了指定的内存大小,那么当虚拟机启动时,会从操作系统中割裂指定的内存大小。

3.1.2 网络模式

  1. 桥接模式:虚拟机直接连接网络
    特点:只要在局域网中的机器都可以访问虚拟机。

  2. NAT模式:在当前的网络环境中,依据虚拟机的net8网卡,开辟了一块全新的网络空间,该空间只能真实的宿主机访问,其他人不能访问虚拟机。

192.168.126.1 代表windows真实计算机的IP地址
在这里插入图片描述

3.1.3 克隆虚拟机

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

3.1.4 配置静态IP

在这里插入图片描述

3.1.5 XShell安装

说明
XShell是一种远程连接Linux操作系统的工具。

  1. 虚拟机连接
    在这里插入图片描述

  2. 如果虚拟机连接不通,需要动态修改IP获取方式
    在这里插入图片描述

之后禁用再启动即可。

3.2 Linux介绍

特点:
1.开源和免费的 规范Unix—Linux
2.运行稳定
-2.1 占用内核小
-2.2 全部的程序都是基于文件的
3.Linux系统在服务端应用广泛,安全性更好。

以下是主流的Linux系统:
在这里插入图片描述

3.2.2 Linux命令

命令 作用
cd 进入指定目录下
ls 查询当前文件夹下的文件信息
pwd 查询当前文件所在位置
mkdir 文件名称 创建文件夹
mkdir -p ee/ff/gg 创建多级文件夹
rm -rf 文件名称 删除文件
vi 文件名称 用vi打开文件
I insert 表示插入信息
Esc 退出当前状态
U 表示文件撤销操作
:wq 保存退出
q!强制退出
vim 和vi命令类似,功能更加强大
cp 复制命令
cp aa.txt cc/dd.txt
cp aa.txt cc/ 以原名复制
cp -r cc dd 复制整个文件夹
mv 移动命令
mv bb.txt cc 将bb.txt 移到到cc文件夹中
mv cc dd 移动文件夹
mv dd aa 如果没有aa文件夹时,那么则修改文件的名称

3.3 Linux中安装JDK

3.3.1 上传安装包

新建文件夹/usr/local/src/java/后,将JDK文件上传到java文件夹下。
在这里插入图片描述

在这里插入图片描述

3.3.2 解压文件

命令:tar -xvf jdk-8u51-linux-x64.tar.gz
确定jdk安装目录
在这里插入图片描述

3.3.3 修改环境变量

  1. 输入命令:vim /etc/profile
    打开profile修改环境变量
    在这里插入图片描述

2.输入命令:source /etc/profile
手动刷新环境变量
在这里插入图片描述
检查jdk是否配置成功

猜你喜欢

转载自blog.csdn.net/s15810813994/article/details/83041270
今日推荐