ReverseProxy

ReverseProxy

ReverseProxy类是一个反向代理,内置基于权重的负载均衡器

创建对象

创建ReverseProxy对象

let rp = new ReverseProxy()

属性与方法

方法类型参数返回值说明
upsertServer方法url:string,weight:intboolean添加或修改后端服务器配置
removeServer方法url:stringboolean删除后端服务器
getServers方法object[]获取所有服务器列表
proxy方法ctx:Ctxvoid执行代理请求

upsertServer

语法

let rp = new ReverseProxy()
rp.upsertServer(url:string,weight:int)

参数

url: 后端服务器url地址,例如:http://192.168.110.118:8999 weight:权重,例如:1

案例

import {ReverseProxy} from "http"
let rp = new ReverseProxy()
//向反向代理对象中添加了2个后端服务器,每个服务器的权重为1
rp.upsertServer("http://192.168.110.118:8999",1)
rp.upsertServer("http://192.168.110.119:8999",1)

removeServer

语法

let rp = new ReverseProxy()
rp.removeServer(url:string)

参数

url: 后端服务器url地址,例如:http://192.168.110.118:8999

案例

import {ReverseProxy} from "http"
let rp = new ReverseProxy()
//删除后端服务器
rp.removeServer("http://192.168.110.118:8999")

getServers

语法

let rp = new ReverseProxy()
rp.getServers()

案例

import {ReverseProxy} from "http"
let rp = new ReverseProxy()
//获取所有后端服务器列表
let servers = rp.getServers()

proxy

语法

rp.proxy(ctx:Ctx)

参数

ctx: Ctx对象

示例

import {ReverseProxy,HttpServer} from "http"
//创建后端集群1
let rp1 = new ReverseProxy()
rp1.upsertServer("http://192.168.110.118:8999",1)
rp1.upsertServer("http://192.168.110.119:8999",1)
//创建后端集群2
let rp2 = new ReverseProxy()
rp2.upsertServer("http://192.168.110.120:8999",1)
rp2.upsertServer("http://192.168.110.121:8999",1)

let server = new HttpServer({addr:":8081"})

server.any("/path1/",(ctx)=>{
	//将当前8081端口的/path1/前缀的所有请求代理到集群1
	rp1.proxy(ctx)
})

server.any("/path2/",(ctx)=>{
	//将当前8081端口的/path2/前缀的所有请求代理到集群2
	rp2.proxy(ctx)
})

server.start()
更新时间 9/19/2024, 12:09:33 PM