1. 反向代理服务器-Nginx
1.1 什么是反向代理服务器
反向代理服务器位于用户与服务器之间,用户通过访问反向代理服务器就能获取目标服务器的资源,并且用户不需要知道目标服务器的地址,也不需要做任何配置。通常用于web加速,提高访问效率
1.2 为什么使用反向代理服务器
用户无需知道目标服务器地址,通过访问反向代理服务器就可以获取资源,反向代理服务器可以访问多个目标服务器,从而提高了访问效率
1.3 反向代理服务器特点
- 位于客户端与服务端之间
- 通过访问反向代理服务器就可以获取目标资源
- 用户不需要知道目标服务器地址,也无需配置
- 反向代理服务器保护了服务器信息,也称为服务器代理
1.4 流程图
2. Nginx工具
2.1 什么是Nginx
Nginx是一款轻量级高性能的HTTP和反向代理Web服务器
2.2 为什么使用Nginx
使用Nginx可以实现反向代理,从而访问多个服务器,提高访问网页的并发能力
2.3 Nginx特点
- 占用内存少,不到2M
- 并发能力强,5万/秒的并发量(理论值) 实际开发并发能力大致在2-3万/秒
- 底层使用c语言编译,稳定性强
2.4 如何使用Nginx工具
2.4.1 下载并安装
- 官网下载指定版本
- 注意路径不要有中文,防止出现意外情况
2.4.2 如何运行
- 找到nginx.exe,右键以管理员身份运行
- 网页输入网址:127.0.0.1 |localhost:80 检测是否启动成功
2.4.3 常见错误
- 无法启动
- 在cmd查看80端口是否被占用,如果被占用删除占用进程,重新启动nginx.exe程序
- 在cmd查看80端口是否被占用,如果被占用删除占用进程,重新启动nginx.exe程序
- 如果80端口被 pid:4 占用,需要升级驱动配置
2.5 Nginx进程项说明
进程1: Nginx主进程 主要负责反向代理的服务. 占用内存大的
进程2: Nginx守护进程 主要负责保护主进程意外关闭的. 占用内存小的
如何手动的关闭: 先关闭守护进程 再关闭主进程
2.6 Nginx在cmd窗口中相关命令
- 说明: 要求在nignx.exe所在的根目录中执行cmd窗口
- 启动命令: start nginx 如果nginx配置文件有错 不会打印报错信息
- 重启命令: nginx -s reload 如果nginx配置文件有错 会打印报错信息
- 关闭命令: nginx -s stop(一定要去任务管理器中的进程项目检查是否关闭了nginx.exe)
2.7 Nginx中nginx.conf文件说明
2.7.1 Nginx主要作用实现反向代理.基于HTTP请求协议
#每个服务都是一个server
server {
#nginx 监听的端口号信息
listen 80;
#nginx 拦截的用户的域名
server_name localhost;
#表示nginx 执行反向代理的具体动作
# / 拦截所有的请求
location / {
# root 映射的是一个目录
root html;
# index 默认页面名称
index index.html index.htm;
}
}
2.7.2 配置hosts文件
- 注意hosts修改权限问题
- 配置后台服务器,例如:
3 Nginx实现负载均衡
3.1 什么是负载均衡
根据服务器数量 通过nginx实现负载均衡效果
3.2 如何实现负载均衡
3.2.1 校验端口号
- 在Controller层编写动态获取端口号打方法
![在这里插入图片描述](https://img-blog.csdnimg.cn/20201230224423331.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NjY5NDc0Nw==,size_16,color_FFFFFF,t_70)
3.2.2 搭建tomcat服务集群
- 将项目打成war包,配置不同端口号
![在这里插入图片描述](https://img-blog.csdnimg.cn/20201230224457118.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NjY5NDc0Nw==,size_16,color_FFFFFF,t_70)
在war包路径下使用cmd窗口,输入:java -jar xxx.war启动tomcat服务器
3.2.3 在nginx.conf文件中配置负载均衡
- 轮询策略
# 配置后台服务器 server { listen 80; server_name manage.jt.com; location / { #proxy_pass http://localhost:8091; proxy_pass http://jtWindows; } } # 配置tomcat服务器集群 1.轮询策略 upstream jtWindows { server localhost:8080; server localhost:8081; server localhost:8082; }
-
权重策略
-
IPHash策略
-
3.2.4 Nginx高级属性
-
down属性:如果后台服务器发生宕机的现象,则nginx任然访问后端服务器,导致用户访问较慢, 可以通过down属性标识故障机.
-
backup属性:设定备用机. 正常的情况下 用户不会访问备用机.只有当主机遇忙时,或者主机down时,才会访问。
-
高可用策略
# max_fails=1 设定最大的失败次数
# fail_timeout=60s; 访问的周期
upstream jtWindows {
#ip_hash;
server localhost:8080 max_fails=1 fail_timeout=60s;
server localhost:8081 max_fails=1 fail_timeout=60s;
server localhost:8082 max_fails=1 fail_timeout=60s;
}