Java-利用Nginx负载均衡实现Web服务器

admin3年前服务器89

还记得那些美妙的夜晚吗

你洗洗打算看一个小电影就睡了,这个时候突然想起来今天晚上是服务器更新的日子,你要在凌晨时分去把***的代码更新到服务器,以保证明天大家一觉醒来打开网站,发现昨天的 Bug 都不见了。这时候你瞬间没有了看电影的兴致了,这应该就是一个运维人员的日常了吧!

为什么要在凌晨时分去更新服务器?

做过 Web 开发的应该都明白,可能尽管你开发的系统并没有多少用户在使用,但是,你依然不敢大白天去更新生产环境服务器,因为你并不知道服务器可能暂停两分钟会带来的影响,又或者我们心目中的「生产环境」这个词是圣神而不可随便玷污的,所以,我们总是放在凌晨时分。

你听过「灾备」、「异地多活」、「双机热备」这些词么

大家都知道「不能把鸡蛋放在一个篮子里」,在我们开发中依然是如此,如果是稍微对系统数据及运行状态有要求的项目,千万可不能突然系统挂掉几分钟,这带来的后果是不可想象的。所以,在我们开发中就会有「灾备」这个词,我们要考虑到这些不可预防的事件发生,所以,往往我们会把系统部署到多台服务器上面,这就是「鸡蛋」的例子,也就是所谓的「双机热备」,以保证我们系统的高可用,当一个服务器挂掉,后边的这个完全有能力顶上去!就好像一个程序员你感觉他天天没什么事儿可干,非常气愤的去找你领导说:xxx 天天没事干,为什么他工资比我高?呵呵呵...

在 从零开始学 Java - CentOS 下 Nginx + Tomcat 配置负载均衡 这篇文章中,我们已经配置了两台服务器实现负载均衡,并且可以自定义权重,其实这个时候 Nginx 是支持你去更新其中一个服务器的时候,它监测到这个服务器挂掉了,它把请求都转发到另一台服务器的。但是,我在翻看 Nginx 的 upstream 配置的时候发现有种更好的方式,就是配置备份服务器。

backup 是什么鬼

当然是备份的意思了。看到官网的配置是这个样子的:

backup : marks the server as a backup server. It will be passed requests when the primary servers are unavailable.(标记为备用服务器。当主服务器不可用以后,请求会被传给这些服务器。)

这意思就是,只有当你的服务器挂掉的时候才会使用备份服务器,正常情况下不会访问到备份服务器,那好,我来测试一下,还记得我们上一篇负载均衡的配置么,我增加一个Tomcat服务器3,然后,里边网页输出这是网站{{3333333333:0}}。

具体配置文字版:

我这里先做一个必要的小说明:

192.168.198.128:8080 服务器下面会称为 服务器1 ,每五次请求会到这里一次;

192.168.198.128:8090 服务器下面会称为 服务器2 ,每五次请求会到这里四次;

192.168.198.128:8091 服务器下面会称为 服务器3 ,即备份服务器。

这个时候服务器1、服务器2和服务器3都正常启动,我刷新页面,会按照权重规则请求服务器1和服务器2,并不会请求服务器3(备份服务器)。

接下来我把服务器1停掉,服务器2和服务器3都正常启动,我刷新页面,这个时候所有请求都是服务器2,也并不会请求服务器3(备份服务器)。

接下来我把服务器1、服务器2都停掉,服务器3正常启动,我刷新页面,所有请求都转发到服务器3(备份服务器),看图片:

我再次依次启动服务器1和服务器2,所有请求都又按照权重规则分配了。在你所有正常服务器都挂掉时,系统依然高可用,这就是备份服务器的用处!

总结:无痛更新

配置完备份服务器后,你再也不用再凌晨时分爬起床去更新服务器了,你想什么时间更新就什么时间更新,爱谁谁!真的可以做到无痛、无痛、无痛,不断网重启服务器。

好了,我洗洗睡觉了,我特么终于可以去看一部小电影了...


免责声明:本文内容来自用户上传并发布,站点仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。请核实广告和内容真实性,谨慎使用。

相关文章

教你搭建一个简单的Go Web服务器

今天给大家分享一篇搭建一个GO web服务器,HelloWorld!!Go语言标准库 - net/http在学习Go语言有一个很好的起点,Go语言官方文档很详细,今天我们学习的Go Web服务器的搭建...

什么是IRC 聊天服务

什么是IRC服务器IRC(InternetRelaychat)是网络上一种聊天的服务器。和普通的聊天方式相比,IRC聊天有着速度快、功能多以及支持多种命令等的功能,因此一直是网友快速聊天的最佳选择。 ...

web服务器软件有哪些?常用的web服务器软件介绍_服务器知识

Web服务器软件有哪些?Web服务器软件是一种用于提供Web服务的程序,主要用于接收和响应客户端的HTTP请求和发送HTTP响应。Web服务器软件通常运行在服务器操作系统上,可以通过Internet或...

Web服务器Tomcat的这些架构模块,您都知道吧?

俗话说,站在巨人的肩膀上看世界,一般学习的时候也是先总览一下整体,然后逐个部分个个击破,最后形成思路,了解具体细节,Tomcat的结构很复杂,但是 Tomcat 非常的模块化,找到了 Tomcat最核...

Web 服务器性能与站点访问性能优化

优化思路浅析要优化 Web 服务器的性能,我们先来看看 Web 服务器在 web 页面处理上的步骤:1. Web 浏览器向一个特定的服务器发出 Web 页面请求; 2. Web 服务器接收到 web...

浅谈Web服务器的安装与配置

Web服务器主要功能是提供网上信息浏览服务。 一、WEB服务器的介绍: 1、WEB服务器也称为WWW(WORLD WIDE WEB)服务器,主要功能是提供网上信息浏览服务。2、最主...