nginx 负载均衡配置,及本地简单尝试示例,rewrite替换url路径实现带路径负载均衡,多location负载均衡。

首先前端用 node express 搭建简单服务器
具体参考express官网,npm init先创建出package.json
然后 npm i express -d
新建一个app.js,输入如下内容。
运行 node app.js

const express = require('express')
const app = express()
const port = 3000

app.get('/', (req, res) => {
  res.send('Hello World1!')
})

app.get('/test1', (req, res) => {
  res.send('Hello World2!')
})

app.get('/test1/dodo1', (req, res) => {
  res.send('Hello World5!')
})

app.listen(port, () => {
  console.log(`Example app listening on port ${port}`)
})
const express = require('express')
const app = express()
const port = 3001

app.get('/', (req, res) => {
  res.send('Hello World3!')
})

app.get('/test1', (req, res) => {
  res.send('Hello World4!')
})

app.get('/test1/dodo1', (req, res) => {
  res.send('Hello World6!')
})

app.listen(port, () => {
  console.log(`Example app listening on port ${port}`)
})

两个服务好了 我们来简单说说负载均衡 网上大多都是复制粘贴,只适配/通配符的 如下:

worker_processes  1;

events {
    worker_connections  1024;
}


http {
   upstream  dalaoyang-server {
       server    localhost:10001;
       server    localhost:10002;
   }

   server {
       listen       10000;
       server_name  localhost;

       location / {
        proxy_pass http://dalaoyang-server;
        proxy_redirect default;
      }

    }

}

看着挺简单,直接就是把所有的请求统配到 localhost:10001和localhost:10002两个服务器,
没有设置权重weight 也没有ip_hash。但是我们实际应用的时候 可能需要的location不止这一个,
前端的匹配 到了 nginx也不是简单的一个通配符就可以解决的。
形如:

		location ~^/doit {
			rewrite  ^/doit/(.*)$ /$1 break;
			proxy_pass http//:192.168.0.1:3001/test1;
        }

对此类负载均衡应该如何处理呢,其实大概一想就大概知道,如果我们要访问的是
localhost:8080/doit/dodo1。 到了nginx 会被从doit截断,保留/dodo1 与http//:192.168.0.1:3001/test1
拼接形成http//:192.168.0.1:3001/test1/dodo1;

那么负载均衡nginx进行配置:

	upstream abc {
		server localhost:3000 weight=10;
		server localhost:3001 weight=10;
	}


	location ~^/doit {
		rewrite /doit/(.*) /test1/$1;
		proxy_pass http://abc;
       }

整体思路:

  1. 首先启动最先配置的两个express工程
  2. nginx 配置负载均衡 abc,通过rewrite实现替换中间路径,满足多location的配置;
  3. 实现负载均衡常用工作配置;
    实际效果如图:

在这里插入图片描述

在这里插入图片描述
效果可见;
欢迎评论区留言!

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值