- Nginx反向代理与负载均衡 2.1 反向代理2.1.1 什么是反向代理 反向代理(Reverse Proxy)方式是指以代理服务器来接受 internet 上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给 internet 上请求连接的客户端,此时代理服务器对外就表现为一个反向代理服务器。 首先我们先理解正向代理,如下图: 2.1.1 配置反向代理-准备工作 (1) 将网站首页页面部署到 tomcat 中(ROOT 目录),上传到服务器。 (2)启动 TOMCAT,输入网址 http://192.168.25.141:8080 可以看到网站首页
2.1.2 配置反向代理 (1)在 Nginx 主机修改 Nginx 配置文件
(2)重新启动 Nginx 然后用浏览器测试: www.pinyougou.com
file:///C:\Users\user\AppData\Local\Temp\ksohtml\wpsF82B.tmp.png (2)重新启动 Nginx 然后用浏览器测试: www.pinyougou.com(此域名须配置域名指向)
4.2 负载均衡4.2.1 什么是负载均衡 负载均衡 建立在现有网络结构之上,它提供了一种廉价有效透明的方法扩展网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性。 负载均衡,英文名称为 Load Balance,其意思就是分摊到多个操作单元上进行执行, 例如 Web 服务器、FTP 服务器、企业关键应用服务器和其它关键任务服务器等,从而共同完成工作任务。
4.2.1 配置负载均衡-准备工作 (1)将刚才放有首页工程的 tomcat 复制两份,端口分别为 8180 和 8280 。 (2)分别启动这两个 tomcat 服务器的 tomcat 服务。 (3)为了能够区分是访问哪个服务器的网站,可以在首页标题加上标记以便区分。
4.2.2 配置负载均衡 修改 Nginx 配置文件: 经过测试,三台服务器出现的概率各为 33.3333333%,交替显示。 如果其中一台服务器性能比较好,想让其承担更多的压力,可以设置权重。比如想让 NO.1 出现次数是其它服务器的 2 倍,则修改配置如下:
upstream tomcat-portal { server 192.168.25.141:8080; server 192.168.25.141:8180 weight=2;
server 192.168.25.141:8280;
}
经过测试,每刷新四次,有两次是 8180
4.3.1 什么是高可用 nginx 作为负载均衡器,所有请求都到了 nginx,可见 nginx 处于非常重点的位置,如果 nginx 服务器宕机后端 web 服务将无法提供服务,影响严重。
为了屏蔽负载均衡服务器的宕机,需要建立一个备份机。主服务器和备份机上都运行高可用(High Availability)监控程序,通过传送诸如“I am alive”这样的信息来监控对方的运行状况。当备份机不能在一定的时间内收到这样的信息时,它就接管主服务器的服务 IP 并继续提供负载均衡服务;当备份管理器又从主管理器收到“I am alive”这样的信息时,它就释放服务 IP 地址,这样的主服务器就开始再次提供负载均衡服务。
4.3.2 keepalived简介 keepalived 是集群管理中保证集群高可用的一个服务软件,用来防止单点故障。 Keepalived 的作用是检测 web 服务器的状态,如果有一台 web 服务器死机,或工作出现故障,Keepalived 将检测到,并将有故障的 web 服务器从系统中剔除,当 web 服务器工作正常后 Keepalived 自动将 web 服务器加入到服务器群中,这些工作全部自动完成,不需要人工干涉,需要人工做的只是修复故障的 web 服务器。 keepalived 是以 VRRP 协议为实现基础的, VRRP 全称 Virtual Router Redundancy Protocol,即虚拟路由冗余协议。
虚拟路由冗余协议,可以认为是实现路由器高可用的协议,即将 N 台提供相同功能的 路由器组成一个路由器组,这个组里面有一个 master 和多个 backup,master 上面有一个对外提供服务的 vip(VIP = Virtual IPAddress,虚拟 IP 地址,该路由器所在局域网内其他机器的默认路由为该 vip),master 会发组播,当 backup 收不到 VRRP 包时就认为 master 宕掉了,这时就需要根据 VRRP 的优先级来选举一个 backup 当master。这样的话就可以保证路由器的高可用了。 keepalived 主要有三个模块, 分别是 core 、check 和 VRRP 。core 模块为 keepalived 的核心,负责主进程的启动、维护以及全局配置文件的加载和解析。check 负责健康检查,包括常见的各种检查方式。VRRP 模块是来实现 VRRP 协议的。 初始状态: 主机宕机: 主机恢复: