nginx 负载均衡时,一台tomcat宕机时的问题 可以做到自动切换「建议收藏」

nginx 负载均衡时,一台tomcat宕机时的问题 可以做到自动切换「建议收藏」如果Nginx没有仅仅只能代理一台服务器的话,那它也不可能像今天这么火,Nginx可以配置代理多台服务器,当一台服务器宕机之后,仍能保持系统可用。具体配置过程如下:1.在http节点下,添加upstream节点。upstreamlinuxidc{server10.0.6.108:7080;server10.0.0.85:8980;}2.将server节…

大家好,又见面了,我是你们的朋友全栈君。

如果Nginx没有仅仅只能代理一台服务器的话,那它也不可能像今天这么火,Nginx可以配置代理多台服务器,当一台服务器宕机之后,仍能保持系统可用。具体配置过程如下:

1.在http节点下,添加upstream节点。

upstream linuxidc {
      server 10.0.6.108:7080;
      server 10.0.0.85:8980;
}

2.将server节点下的location节点中的proxy_pass配置为:http:// + upstream名称,即“http://linuxidc”.

location / {
            root  html;
            index  index.html index.htm;
            proxy_pass http://linuxidc;
}

3.现在负载均衡初步完成了。upstream按照轮询(默认)方式进行负载,每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。虽然这种方式简便、成本低廉。但缺点是:可靠性低和负载分配不均衡。适用于图片服务器集群和纯静态页面服务器集群。

除此之外,upstream还有其它的分配策略,分别如下:

weight(权重)

指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。如下所示,10.0.0.88的访问比率要比10.0.0.77的访问比率高一倍。

upstream linuxidc{
      server 10.0.0.77 weight=5;
      server 10.0.0.88 weight=10;
}

ip_hash(访问ip)

每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。

upstream favresin{
      ip_hash;
      server 10.0.0.10:8080;
      server 10.0.0.11:8080;
}

fair(第三方)

按后端服务器的响应时间来分配请求,响应时间短的优先分配。与weight分配策略类似。

 upstream favresin{     
      server 10.0.0.10:8080;
      server 10.0.0.11:8080;
      fair;
}

url_hash(第三方)

按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器,后端服务器为缓存时比较有效。

注意:在upstream中加入hash语句,server语句中不能写入weight等其他的参数,hash_method是使用的hash算法。

upstream resinserver{
      server 10.0.0.10:7777;
      server 10.0.0.11:8888;
      hash $request_uri;
      hash_method crc32;
}

upstream还可以为每个设备设置状态值,这些状态值的含义分别如下:

down 表示单前的server暂时不参与负载.

weight 默认为1.weight越大,负载的权重就越大。

max_fails :允许请求失败的次数默认为1.当超过最大次数时,返回proxy_next_upstream 模块定义的错误.

fail_timeout : max_fails次失败后,暂停的时间。

backup: 其它所有的非backup机器down或者忙的时候,请求backup机器。所以这台机器压力会最轻。

upstream bakend{ #定义负载均衡设备的Ip及设备状态
      ip_hash;
      server 10.0.0.11:9090 down;
      server 10.0.0.11:8080 weight=2;
      server 10.0.0.11:6060;
      server 10.0.0.11:7070 backup;
}
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/163644.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 高效工作指南

    高效工作指南

    2021年9月9日
    50
  • 2021年职称计算机考试模块,2021高级职称计算机考试需要考哪些模块?「建议收藏」

    2021年职称计算机考试模块,2021高级职称计算机考试需要考哪些模块?「建议收藏」对于大多数考生来说,备考高级职称计算机考试前前后后会遇到许多问题,比如:高级职称计算机考试一次性可以考几个科目?高级职称计算机考试几个模块?级职称是职称中最高级别,分正高级和副高级,是反映专业技术人员的技术水平、工作能力。就学术而言,它具有学衔的性质;就专业技术水平而言,它具有岗位的性质。专业技术人员拥有何种专业技术职称,表明他具有何种学术水平或从事何种工作岗位,象征着一定的身份。而想获得高级职称…

    2022年5月5日
    46
  • CentOS 安装 tomcat 环境安装及配置过程完整版「建议收藏」

    CentOS 安装 tomcat 环境安装及配置过程完整版「建议收藏」CentOS安装tomcat环境安装及配置过程查看安装包信息yuminfotomcat安装yum-yinstalltomcat查看是否安装成功rpm-qtomcat输出:tomcat-7.0.76-16.el7_9.noarch表示安装成功。配置环境变量tomcat默认安装路径/usr/share/tomcat/加入环境变量配置在/etc/profile配置文件中加入Tomcat环境变量:JAVA_HOME=/usr/lib/jvm/ja

    2022年7月18日
    13
  • 十大常见web漏洞及防范[通俗易懂]

    十大常见web漏洞及防范[通俗易懂]十大常见web漏洞一、SQL注入漏洞SQL注入攻击(SQLInjection),简称注入攻击、SQL注入,被广泛用于非法获取网站控制权,是发生在应用程序的数据库层上的安全漏洞。在设计程序,忽略了对输入字符串中夹带的SQL指令的检查,被数据库误认为是正常的SQL指令而运行,从而使数据库受到攻击,可能导致数据被窃取、…

    2022年6月2日
    63
  • Oracle触发器和事务[通俗易懂]

    Oracle触发器和事务[通俗易懂] oracle触发器和事务2015年11月24日14:16:43 it_taojingzhan 阅读数:320编写触发器时,需要注意以下几点:l        触发器不接受参数。l        一个表上最多可有12个触发器,但同一时间、同一事件、同一类型的触发器只能有一个。并各触发器之间不能有矛盾。l        在一个表上的触发器越多,对在该表上的DML操作的性能影…

    2022年7月27日
    11
  • react父子组件传值

    react父子组件传值react父子组件传值react父子组件传值一、父给子传值1.子组件是函数组件时,通过参数props接收2.子组件是类组件时,通过参数this.props接收二、子给父传值react父子组件传值一、父给子传值1.子组件是函数组件时,通过参数props接收2.子组件是类组件时,通过参数this.props接收二、子给父传值1.由父组件给子组件提供一个回调函数,传递给子组件;2.当子组件给父组件传值时,调用该回调函数3.父组件通过回调函数调用,拿到子组件传来的参数结果:点击按钮后

    2022年5月17日
    75

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号