小满Linux(第十一章Nginx-负载均衡upstream)

基本语法

upstream的基本语法如下,一个upstream需要设置一个名称,这个名称可以在server里面当作proxy主机使用。

    upstream  node {
        server 127.0.0.1:9001;
        server 127.0.0.1:9002;
        server 127.0.0.1:9003;
    }
        location / {
            proxy_pass http://node;
        }

 1.默认状态是按照轮询的方式去做负载的

使用express 启动三个服务 分别是9001 9002 9003

const express = require('express')
var num = 1
const app = express()

app.get('/list',(req,res)=>{
    res.json({
        code:200,
        message:"Nginx 负载均衡9001"
    })
    console.log("Nginx 负载均衡9001",num)
   num++
})
//------------------------------9001
app.listen(9001,()=>{
    console.log('9001 success')
})

//-----------------------------------
const express = require('express')
var num = 1
const app = express()

app.get('/list',(req,res)=>{
    res.json({
        code:200,
        message:"Nginx 负载均衡9002"
    })
    console.log("Nginx 负载均衡9002",num)
    num++
})
//------------------------------9002
app.listen(9002,()=>{
    console.log('9002 success')
})

//--------------------------------

const express = require('express')
var num = 1
const app = express()

app.get('/list',(req,res)=>{
    
    res.json({
        code:200,
        message:"Nginx 负载均衡9003"
    })
    console.log("Nginx 负载均衡9003",num)
    num++
})
//------------------------------9003
app.listen(9003,()=>{
    console.log('9003 success')
})

经过33次压测之后 平均每个负载为11次证明轮询

 2.权重weight

    upstream  node {
        server 127.0.0.1:9001 weight=3;
        server 127.0.0.1:9002 weight=2;
        server 127.0.0.1:9003 weight=1;
    }

权重越大服务器承载的并发就越高

压测100 更多的并发打到了9001

 3. fail_timeout backup

fail_timeout是故障等待超时时间

backup是备用服务器参数,可以为一个upstream设置一个backup的server,在生产server全部都出问题之后,可以自动切换到备用server上,为回复服务争取时间

    upstream  node {

        server 127.0.0.1:9001 fail_timeout=60;

        server 127.0.0.1:9002 fail_timeout=20;

        server 127.0.0.1:9003 backup;

    }

 

扫描二维码关注公众号,回复: 14340020 查看本文章

猜你喜欢

转载自blog.csdn.net/qq1195566313/article/details/124553203