超级详细的nginx负载均衡配置

本站所有内容来自互联网收集,仅供学习和交流,请勿用于商业用途。如有侵权、不妥之处,请第一时间联系我们删除!Q群:迪思分享
免费资源网 – https://freexyz.cn/

目录前言实验准备实验步骤其他负载均衡配置策略总结

前言

nginx作为一款企业级的代理服务器,不管是大中小各类生产项目中,均有广泛的使用,尤其是在前后端分离的项目中,nginx作为路由转发的功能是非常常用的;

在一些流量比较大的项目中,为了应对高并发的场景,后端服务往往采用集群部署,这时候,就需要使用到nginx的负载均衡功能;

实验准备

nginx服务器;两个后端服务;

实验步骤

1、启动两个后端服务

这里准备了两个springboot工程,编写了2个测试使用的接口,以端口号区分

@RestController
@RequestMapping(“/api”)
public class NginxController1 {
@GetMapping
public String test1(){
return “success test1 8082”;
}
}

@RestController
@RequestMapping(“/api”)
public class NginxController1 {
@GetMapping
public String test1(){
return “success test1 8081”;
}
}

启动之后,浏览器分别访问一下,确保服务是正常的

超级详细的nginx负载均衡配置插图

超级详细的nginx负载均衡配置插图1

2、nginx.conf进行配置

1)在server中添加一个location,并且配置 proxy_pass

location / {
#转发到负载服务上
proxy_pass http://webservers/api/;
}

2)配置upstream,指向后端服务

upstream webservers{
server 192.168.9.134:8081;
server 192.168.9.134:8082;
}

完整的配置参考如下:

#user nobody;
worker_processes 1;
events {
worker_connections 1024;
}

http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
upstream webservers{
server 192.168.9.134:8081 weight=8;
server 192.168.9.134:8082 weight=2;
}

server {
listen 80;
server_name localhost;
#location / {
# root html;
# index index.html index.htm;
#}

location / {
#转发到负载服务上
proxy_pass http://webservers/api/;
}

error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}

修改完毕后,启动nginx,或者重新加载配置

nginx.exe -s reload

浏览器访问:localhost:80,多刷几次,下面两个展示的界面轮询的出现

超级详细的nginx负载均衡配置插图2

超级详细的nginx负载均衡配置插图3

3、负载均衡配置说明

默认情况下,直接按照上面的配置后,如果后端有多个服务,采用的是轮询策略;

常用的可选配置包括:

weight 多台机器,可以配置权重值,权重高的服务将会优先被访问

down 某个服务配置down之后,这台服务将不会被访问

backup 配置了这个参数后,除非其他的服务都挂掉了,否则这台服务将不会被访问到

以weight 为例做简单的说明,在上面的配置中,补充weight参数

upstream webservers{
server 192.168.9.134:8081 weight=8;
server 192.168.9.134:8082 weight=2;
}

重新加载配置,按照上面的测试步骤再次刷新页面,这时候可以发现,8081对于的这个服务将会被更多的访问到;

其他负载均衡配置策略

默认情况下,nginx采用的是轮询策略,nginx还提供了其他几种常用的负载均衡配置

1、ip_hash

每个请求按访问IP的hash结果进行分配,这样每个访客就可以固定访问一个后端服务,一定程度上可以解决session问题;

upstream webservers {


© 版权声明
THE END
★喜欢这篇文章吗?喜欢的话,麻烦动动手指支持一下!★
点赞14 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容