使用nginx+tomcat实现不停机升级网站

news/2024/5/18 0:22:13/文章来源:https://kaixin.blog.csdn.net/article/details/80269296

还记得那些美妙的夜晚吗

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

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

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

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

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

backup 是什么鬼

当然是备份的意思了。看到官网的配置(http://nginx.org/en/docs/http/ngx_http_upstream_module.html)是这个样子的:
nginx_example.PNG

  • backup : marks the server as a backup server. It will be passed requests when the primary servers are unavailable.(标记为备用服务器。当主服务器不可用以后,请求会被传给这些服务器。)
    这意思就是,只有当你的服务器挂掉的时候才会使用备份服务器,正常情况下不会访问到备份服务器,那好,我来测试一下,还记得我们上一篇负载均衡的配置么,我增加一个Tomcat服务器3,然后,里边网页输出这是网站3333333333

nginx_backup.png

具体配置文字版:


  1. upstream backend {
  2. server 192.168.198.128:8080 weight=1;
  3. server 192.168.198.128:8090 weight=4;
  4. server 192.168.198.128:8091 backup;
  5. }
  6. server {
  7. listen 80;
  8. server_name localhost;
  9. #charset koi8-r;
  10. #access_log logs/host.access.log main;
  11. location / {
  12. root html;
  13. index index.html index.htm;
  14. proxy_pass http://backend;
  15. }

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

  • 192.168.198.128:8080 服务器下面会称为 服务器1 ,每五次请求会到这里一次;
  • 192.168.198.128:8090 服务器下面会称为 服务器2 ,每五次请求会到这里四次;
  • 192.168.198.128:8091 服务器下面会称为 服务器3 ,即备份服务器。

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

nginx_allstart.gif

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

nginx_service1stop.gif

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

nginx_service1and2stop.gif

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

总结:无痛更新

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

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

希望能帮到大家。大家如果有兴趣可以来我的网站看看:http://www.jiegelo.com

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_780678.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

在CentOS上使用Nginx和Tomcat搭建高可用高并发网站

目录 目录前言创建CentOS虚拟机安装Nginx安装Tomcat安装lvs和keepalived反向代理部署网站搭建数据库编写网站项目解决session一致性注意参考资料前言 本篇文章将介绍如何搭建使用Nginx和Tomcat的高可用高并发的网站,我们将会在CentOS系统上搭建这样一个网站后端。这…

大话设计模式-享元模式的实践-网站模板享元

UML 用户类 用于网站的客户账号 是网站类的外部状态 /*** ClassName: User* Author: Leo* Description: 用户类 用于网站的客户账号 是网站类的外部状态* Date: 2019/5/28 9:58*/ public class User {private String name;public User(String name) {this.name name;}public …

只有登陆注册页需要https加密吗?N网站有必要全站加密吗?

很多人都觉得,HTTPS 可以保护用户的密码等登陆信息,那么其他时候就不需要了。但火狐Firefox浏览器插件Firesheep,证明了这种想法是错的。我们可以看到,其实在一些社交平台,劫持其他人的session是非常容易的。我们以常见…

Nginx-Docker下安装Nginx并部署静态网站

一、Docker安装Nginx教程 Docker安装Nginx教程 二、Nginx部署静态网站 1. 把静态文件放到挂载的宿主机目录内: Docker nginx 容器内 /usr/share/nginx/html/ 挂载到了宿主机 /root/nginx/www/camelia是我这个静态网站的项目文件夹,里面包含css/js/ima…

爬虫 -----爬取某个网站信息

一.Java爬取某个网站的信息 1.项目gitee地址:https://gitee.com/Javaxieyue/reptiles.git 2.爬取网站的地址: http://www.mca.gov.cn//article/sj/xzqh/2020/2020/2020092500801.html 3.要求:需要对html页面有点了解,以便对爬…

Sharepoint 创建个人网站时出现错误。有关详细信息,请与网站管理员联系

SharePoint Server 2007 / MOSS 2007 中启用了个人网站功能,并且配置了正确的SSP,可是用户在访问我的网站时总是提示:创建个人网站时出现错误。有关详细信息,请与网站管理员联系。 MOSS服务器场 具体环境如下: AD服务…

tomcat出现404的原因_Seo优化,404页面优化,这样做有利于网站页面优化-深圳长诚网络...

404页面就是在用户访问你的网站的某个地址的时候,如果这个地址不存在或者内容删除后,展现给用户看的页面。大多数站长在做站内优化时都会有404设置这么一项工作。如如果没有设置404页面,那么用户或的页面就是一个错误的页面,则搜索…

谈谈网站静态化

写在前头 静态化是解决减轻网站压力,提高网站访问速度的常用方案,但在强调交互的We2.0 时代,对静态化提出了更高的要求,静态不仅要能静,还要能动,下面我通过一个项目,谈谈网站静态化后的架构设计方案,同时和大家探讨一下,在开源产品大行其道,言架构必称MemberCache, Nginx,的时…

非常推荐:搭建一个大型网站架构的实验环境(FreeBsd+Nginx+Squid+Apache)

非常具有教育性质的好贴,决定本周在家按照教程学习。

大型网站架构(转帖)--详细介绍阶段性需求和应对方法

之前也有一些介绍大型网站架构演变的文章,例如 LiveJournal的、 ebay的,都是非常值得参考的,不过感觉他们讲的更多的是每次演变的结果,而没有很详细的讲为什么需要做这样的演变,再加上近来感觉有不少同学都很难明白为什…

同服务器的网站被K该怎么办,网站首页被K应该如何处理?

原标题:网站首页被K应该如何处理?上个月小编手里有几个网站首页被K,整站的收录和索引都正常,内页的排名也还在,唯独首页被K了,找了很久也没找出原因所在。网站的服务器、站内代码、文章质量、友情链接、关键…

55个神奇的网站布局

我们总是在摸索着网站布局的效果展示,总是花费不少心思在考虑用户体验的极致所在,在这里我在一个国外的网站看到以下网站布局方式,实为好赞,所以贴下来分享,并从中我们可以去为移动终端这块做最新的参考与演化方式。。…

小网站架构优化-提升抗并发能力:子应用程序分离方案

前言:标题为啥要加个“小”,只因为上一篇文章“小网站架构优化:从100并发抗到4000并发”,带了个“小”字,所以这篇也顺流加个“小”了。大意“小”是特指秋色园(流量小,服务器配置低&#xff09…

打造成功电子商务网站的六大设计准则

我能信任你吗?这是所有网购用户忐忑不安的下订单之前都会在心里向网站问的一个问题。 你不能因此指责他们,因为这个时候他们正将自己的信用卡信息提交到你的网站上,而这又仅仅是因为他们认为你会将商品寄送给他们。 关于电子商务网页设计一直…

使用java的html解析器jsoup和jQuery实现一个自动重复抓取任意网站页面指定元素的web应用...

在线演示 本地下载 如果你曾经开发过内容聚合类网站的话,使用程序动态整合来自不同页面或者网站内容的功能肯定对于你来说非常熟悉。通常使用java的话,我们都会使用到一些HTML的解析,例如,httpparser,最早gbin1.com的…

初步试用Squid的替代产品──Varnish Cache网站加速器

[2007-8-29 18:45 | by 张宴 ] Varnish是一款高性能的开源HTTP加速器,挪威最大的在线报纸 Verdens Gang (vg.no) 使用3台Varnish代替了原来的12台squid,性能比以前更好。Varnish的作者Poul-Henning Kamp是FreeBSD的内核开发者之一,他认为现在…

用Varnish代替Squid做网站缓存加速器的详细解决方案

[文章作者:张宴 本文版本:v1.2 最后修改: 2008.01.02 转载请注明出处: http://blog.s135.com]我曾经写过一篇文章──《 初步试用Squid的替代产品──Varnish Cache网站加速器》,但当时仅仅是用着玩,没做深…

基于SSM的在线视频教育网站系统【附源码】

项目概述 基于SSM的在线视频教育网站系统设计与实现.系统分为管理员与普通用户两种角色。非maven项目。 1)登录模块 在进入系统首页后,首先看到的是登录界面,该界面会提供注册用户的功能,在登陆界面,输入用户名之后,首…

15+ 易响应的CSS框架快速开启你的敏捷网站项目

由 于移动互联用户的快速增加,现在数量已经超出10亿,几乎可以肯定的是你的网站每天都会有移动用户访问。如果你组织计划创建一个对移动用户友好的浏览体 验,有多个方面需要考虑。响应快速的网站设计似乎现在很流行,但是仅依赖你的…

Fixed Responsive Nav – 响应式的单页网站导航插件

Fixed Responsive Nav 是一个响应式的,固定的,触摸友好的单页网站导航插件,响应式导航,流畅的动画滚动。该项目采用渐进增强构建,支持工作在 IE6 及以上版本的浏览器。 你可以给导航打开的内容添加一个遮罩&#xff0c…