目录
一、正向代理与反向代理
正向代理
反向代理
二、负载均衡
什么是负载均衡
代码仓库定义
分流策略
权重
least_conn(最少连接)
ip_hash(负载均衡模式)
fair(第三方负载均衡模式)
url_hash(第三方负载均衡模式)
三、Nginx+Tomcat反向代理与负载均衡部署
第一步 关闭防火墙和安全机制
第二步 安装依赖环境
第三步 编译安装
第四步 编译
第五步 添加系统识别
第六步 编辑配置文件
第七步 赋权并启动服务
第八步 查看指定端口服务
第九步 用浏览器测试Nginx
第十步 部署Tomcat服务器
第十一步 解包到指定目录并优化路径
第十二步 修改配置文件
第十三步 刷新文件
第十四步 重启Tomcat
第十五步 查看对应端口
第十六步 安装第三台虚拟机
第十七步 创建目录编辑动态页面
第十八步 修改配置文件
第十九步 重启Tomcat
第二十步 查看对应端口
第二十一步 用浏览器进行测试
第二十二步 第三台虚拟机配置Tomcat
第二十三步 修改动态页面内容
第二十四步 修改第一台静态页面
第二十五步 准备一个静态图片
第二十六步 配置Nginx文件
第二十七步 修改配置内容
第二十八步 用浏览器进行测试
一、正向代理与反向代理
正向代理
客户端想要直接与目标服务器连接,但是无法直接进行连接,就需要先去访问中间的代理服务器,让代理服务器代替客户端去访问目标服务器
反向代理
屏蔽掉服务器的信息,经常用在多台服务器的分布式部署上,像一些大型网站,由于访问人数很多,就需要多台服务器来解决,由一个反向代理服务器来代理,客户端发来请求,先由反向代理服务器,按一定的规则分发到明确的服务器,但客户端不知道是哪台服务器,常用Nginx做反向代理
二、负载均衡
什么是负载均衡
将工作任务或者访问请求进行平衡,然后分摊到多个单元、服务器或者组件上执行,解决高并发,高可用(单点故障)、扩展性(水平伸缩)的最高解决方案
代码仓库定义
开发人员分别将前段和后端代码都存入自己的代码仓库,由分支进行分类(分支、主分支、分分支)分类储存后,打包上传服务器
后端打包工具Maven(打包为War、jar包)
前段打包工具Npm、nodejs
一般前端打包后会放入/usr/local/nginx/html目录当中(nginx配置)
后端的打包回放入在Tomcat服务里的Webapps中
私有仓库 gitlab
公有仓库 github
分流策略
Nginx负载均衡模式(rr负载均衡模式)
每个请求按时间顺序逐一分配到不同的后端服务器,如果超过了最大失败次数后(max_fails)默认为1,在失效时间内(fail_timeout)默认为10秒,该节点失效权重变为0,超过失效时间后,则恢复正常,或者全部节点都为down后,那么将所有节点都恢复为有效,继续探测,一般来说rr可以根据权重进行均匀分配
权重
least_conn(最少连接)
优先将客户端请求调度到当前连接最少的服务器
ip_hash(负载均衡模式)
每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端的服务器,可以解决session的问题,但是ip_hash会造成负载不均,有的服务请求接受多,有的请求接受少,所以不建议采用ip_hash模式,session共享问题可用后端服务的session共享代替nginx的ip_hash
fair(第三方负载均衡模式)
按后端的服务器响应时间来分配请求,响应时间短的有限分配
url_hash(第三方负载均衡模式)
基于用户请求的url做hash,和ip_hash算法类似,是对每个请求按url的hash结果分配,使每个URL定向到同一个后端服务器,但也会造成分配不均的问题,这种模式后端服务器为缓存时比较好
三、Nginx+Tomcat反向代理与负载均衡部署
第一步 关闭防火墙和安全机制
命令:systemctl stop firewalld
setenforce 0
第二步 安装依赖环境
命令:yum -y install pcre-devel zlib-devel openssl-devel gcc gcc-c++ make
第三步 编译安装
命令:./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-file-aio --with-http_stub_status_module --with-http_gzip_static_module --with-http_flv_module
第四步 编译
命令:make -j4 && make install
第五步 添加系统识别
命令:ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin
第六步 编辑配置文件
命令:vim /lib/systemd/system/nginx.service
第七步 赋权并启动服务
命令:chmod 777 /lib/systemd/system/nginx.service
systemctl start nginx
systemctl enable nginx
第八步 查看指定端口服务
命令:lsof -i:8080
第九步 用浏览器测试Nginx
第十步 部署Tomcat服务器
第十一步 解包到指定目录并优化路径
命令:tar xf [压缩包名] -C [指定路径]
第十二步 修改配置文件
命令:vim /etc/profile
第十三步 刷新文件
命令:source /etc/profile
第十四步 重启Tomcat
命令:/usr/local/tomcat/bin/shutdown.sh
/usr/local/tomcat/bin/startup.sh
第十五步 查看对应端口
命令:lsof -i:8080