前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >前端如何配置Nginx负载均衡

前端如何配置Nginx负载均衡

作者头像
terrence386
发布2022-07-14 21:13:42
4890
发布2022-07-14 21:13:42
举报

最近这几天,特斯拉刹车失灵这个事儿闹得挺大的。对于这件事儿,个人也思考了一下。感觉国内的执法人员素质急需提高。受害者只是想讨回公道,却被行政拘留5天。对比一下外国执法部门直接搜查特斯拉,感觉差距太大了。有可能是特斯拉的公关能力特别强,呵呵。然后就是安全问题。汽车联网以后,汽车的行驶安全问题是个大问题。因为汽车不是手机,手机可能会造成个人信息泄露,但是手机坏了一般不会成为杀人工具。但是汽车就不一样了,刹车失灵,电池自燃等问题,有可能会驾驶及乘车人员造成一些不可逆的伤害,这些伤害包括致残,致死。同时,汽车联网以后,因为大部分对互联网认识很浅,所以没什么概念,但是假如有黑客进入汽车的控制系统,那么这个问题就太可怕了

前情回顾

上篇文章主要分享了正向代理反向代理的概念。今天分享一下关于Nginx负载均衡的概念及简单配置。

负载均衡

Nginx服务器反向代理服务的一个重要用途是实现负载均衡。

当业务量急剧升高,访问量和数据流量飞速增长的时候,最网络本身处理能力和计算能力的要求也越来越高。但是现有的硬件设施满足不了需求,这时候就需要负载均衡这样的技术。

网络负载均衡技术的大致原理是利用一定的分配策略将网络负载平衡地分摊到网络集群的各个操作单元上,使得单个重负载任务能够分担到多个单元上并行处理,或者使得大量并发访问或数据流量分担到多个单元上分别处理,从而减少用户的等待响应时间

Nginx服务器负载均衡配置

理解了负载均衡的概念,就可以利用Nginx服务器实现负载均衡的配置了。Nginx服务器实现了静态的基于优先级的加权轮询算法,主要使用的配置是proxy_pass指令和upsteam指令,这些内容实际上很容易理解,关键点在于Nginx服务器的配置灵活多样,如何在配置负载均衡的同时合理地融合其他功能,形成一套可以满足实际需求的配置方案。

对所有请求实现一般轮询规则的负载均衡

在以下实例片段中,backend服务器组中所有服务器的优先级全部配置为默认的weight=1,这样它们会按照一般轮询策略依次接收请求任务。该配置是一个最简单的实现Nginx服务器负载均衡的配置。所有访问909500.club的请求都会在backend服务器组中实现负载均衡。

代码语言:javascript
复制
# 配置后端服务器组 默认weight=1
  upstream backend {
    server 192.168.1.2:80;
    server 192.168.1.3:80;
    server 192.168.1.4:80;
  }
  server  {
    server_name 909500.club;
    listen 80;
    location /
      {
        proxy_pass http://backend;
        proxy_set_header Host $host;
      }
  }

对所有请求实现加权轮询规则的负载均衡

在该实例片段中,backend服务器组中的服务器被赋予了不同的优先级别,weight变量的值就是轮询策略中的“权值”。其中,192.168.1.2:80的级别最高,优先接收和处理客户端请求;192.168.1.4:80的级别最低,是接收和处理客户端请求最少的服务器,192.168.1.3:80将介于以上两者之间。所有访问909500.club的请求都会在backend服务器组中实现加权负载均衡。

代码语言:javascript
复制
## 配置后端服务器组 默认weight=1
  upstream backend {
    server 192.168.1.2:80 weight=5;
    server 192.168.1.3:80 weight=4;
    server 192.168.1.4:80 weight=3;
  }
  server  {
    server_name 909500.club;
    listen 80;
    location /
      {
        proxy_pass http://backend;
        proxy_set_header Host $host;
      }
  }

对特定资源实现负载均衡

在该实例片段中,我们设置了两组被代理的服务器组,名为videobackend的一组用于对请求video资源的客户端请求进行负载均衡,另一组用于对请求file资源的客户端请求进行负载均衡。通过对location块uri的不同配置,我们就很轻易地实现了对特定资源的负载均衡。

代码语言:javascript
复制
## 配置后端服务器组 默认weight=1
  upstream videobackend {
    server 192.168.1.2:80 weight=5;
    server 192.168.1.3:80 weight=4;
    server 192.168.1.4:80 weight=3;
  }
  upstream filebackend {
    server 192.168.1.5:80 weight=5;
    server 192.168.1.6:80 weight=4;
    server 192.168.1.7:80 weight=3;
  }
  server  {
    server_name 909500.club;
    listen 80;
    # 使用vidoebackend 服务器组
    location /video/
      {
        proxy_pass http://videobackend;
        proxy_set_header Host $host;
      }
    # 使用fileebackend 服务器组
    location /file/
      {
        proxy_pass http://filebackend;
        proxy_set_header Host $host;
      }
  }

对不同域名实现负载均衡

我们设置了两个虚拟服务器和两组后端被代理的服务器组,分别用来接收不同的域名请求和对这些请求进行负载均衡处理。如果客户端请求域名为wx.909500.club,则由服务器server 1接收并转向wxbackend服务器组进行负载均衡处理;如果客户端请求域名为pc.909500.club,则由服务器server2接收并转向pcbackend服务器组进行负载均衡处理。这样就实现了对不同域名的负载均衡。

需要注意两组后端服务器组中有一台服务器server 192.168.1.4:80是公用的。在该服务器上需要部署两个域名下的所有资源才能保证客户端请求不会出现问题

代码语言:javascript
复制
## 配置后端服务器组 默认weight=1
  upstream wxbackend {
    server 192.168.1.2:80 weight=5;
    server 192.168.1.3:80 weight=4;
    server 192.168.1.4:80 weight=3;
  }
  upstream pcbackend {
    server 192.168.1.4:80 ;
    server 192.168.1.5:80 ;
    server 192.168.1.6:80 ;
  }
  # 服务1 微信用
  server  {
    server_name wx.909500.club;
    listen 80;
    # 使用vidoebackend 服务器组
    location /
      {
        proxy_pass http://wxbackend;
        proxy_set_header Host $host;
      }
  }
  # 服务2 pc用
  server  {
    server_name pc.909500.club;
    listen 80;
    # 使用vidoebackend 服务器组
    location /
      {
        proxy_pass http://pcbackend;
        proxy_set_header Host $host;
      }
  }

总结

  • 简单介绍一下负载均衡的概念
  • 了解一个如何配置负载均衡

javascript基础知识总结

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-04-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 JavaScript高级程序设计 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前情回顾
  • 负载均衡
  • Nginx服务器负载均衡配置
  • 对所有请求实现一般轮询规则的负载均衡
  • 对所有请求实现加权轮询规则的负载均衡
  • 对特定资源实现负载均衡
  • 对不同域名实现负载均衡
  • 总结
相关产品与服务
负载均衡
负载均衡(Cloud Load Balancer,CLB)提供安全快捷的流量分发服务,访问流量经由 CLB 可以自动分配到云中的多台后端服务器上,扩展系统的服务能力并消除单点故障。负载均衡支持亿级连接和千万级并发,可轻松应对大流量访问,满足业务需求。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档