服务器问答

有没有支持这种功能的代理或者自己实现有什么好的方法?
0
2021-05-18 12:45:02
idczone


比如有一个代理 117.114.58.53 ,它抗投诉服务器反向代理后一些后端服务,且只能启动一个端口 80,后端服务有 4 层的有 7 层的,但是就 7 层代理而言,需要后端 url 不同,这样才能区分,比如有两个被代理服务 A 和 B 文根都是 /api/nginx,这样代理就没法区分到底转发给谁了,我想了一个思路,就是在文根前加一个标识,比如 A 的变为 /A/api/nginx,/B/api/nginx,这样 nginx 就可以区分了,但是后端服务很多不支持这样修改 url 会返回 404 或者 301 302 这种,而且还有很多重定向什么的也会修改 url 。

所以想代理这块有没有能支持这种需求的,在不修改后端配置或者代码情况下,能处理这种自定义文根映射和处理重定向的。如果没有的话自己实现有什么可以借鉴的吗?


"但是后端服务很多不支持这样修改 url"
nginx 可以 rewrite 那个 url,在转发的时候把 /A/跟 /B/给去掉

nginx 就可以做到
举个例子
```
server
{
listen 80;
location /A/example_api/ {
http://10.0.0.1:80/example_api/;
proxy_set_header Host $host:$server_port;
}
location /B/example_api/ {
http://10.0.0.2:80/example_api/;
proxy_set_header Host $host:$server_port;
}
}
```

看着像网关,springcloud-gateway 的感觉

数据地带为您的网站提供全球顶级IDC资源
在线咨询
专属客服