nginx七层负载均衡案例

622 阅读1分钟

「这是我参与11月更文挑战的第15天,活动详情查看:2021最后一次更文挑战」 nginx七层负载均衡配置文件案例详解

前几篇文章介绍了nginx的负载均衡,以及负载均衡的一些策略。及四层负载均衡和七层负载均衡的基本概述。 本篇将对之前对七层负载均衡的概述来做一个案例分享。分别将七层负载均衡的这几种情况根据配置文件分别来介绍一下。也算是这次对整个nginx的这几篇文章的一个总结吧。希望各位大佬可以针对写的不对的地方提出来,我会修正的。谢谢。

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

upstream backend{ 
  server 192.168.1.100:9001; 
  server 192.168.1.100:9002; 
  server 192.168.1.100:9003; 
}
server { 
  listen 8083; 
  server_name localhost; 
  location /{ 
    proxy_pass http://backend; 
  } 
}

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

upstream backend{ 
  server 192.168.1.100:9001 weight=7; 
  server 192.168.1.100:9002 weight=5; 
  server 192.168.1.100:9003 weight=3; 
}
server { 
  listen 8083; 
  server_name localhost; 
  location /{ 
    proxy_pass http://backend; 
  } 
}

案例三:对特定资源实现负载均衡

upstream videobackend{ 
  server 192.168.1.100:9001; 
  server 192.168.1.100:9002; 
}
upstream filebackend{ 
  server 192.168.1.100:9003; 
  server 192.168.1.100:9004; 
}
server { 
  listen 8084; 
  server_name localhost; 
  location /video/ { 
    proxy_pass http://videobackend; 
}
  location /file/ { 
    proxy_pass http://filebackend; 
  } 
}

案例四:对不同域名实现负载均衡

upstream itcastbackend{ 
  server 192.168.1.100:9001; 
  server 192.168.1.100:9002; 
}
upstream itheimabackend{ 
  server 192.168.1.100:9003; 
  server 192.168.1.100:9004; 
}
server { 
  listen 8085; 
  server_name www.itcast.cn; 
  location / { 
    proxy_pass http://itcastbackend;
  } 
}
server { 
  listen 8086; 
  server_name www.itheima.cn; 
  location / { 
    proxy_pass http://itheimabackend; 
  } 
} 

案例五:实现带有URL重写的负载均衡

upstream backend{ 
  server 192.168.1.100:9001; 
  server 192.168.1.100:9002; 
  server 192.168.1.100:9003; 
}
server { 
  listen 80; 
  server_name localhost; 
  location /file/ { 
    rewrite ^(/file/.*) /server/$1 last; 
}
  location / { 
    proxy_pass http://backend; 
  } 
}

以上这几个案例就是我对七层负载均衡的一个介绍,希望大家看完针对有写的不好、不对的地方可以提出宝贵建议。谢谢。