技术解析

nginx 能到实现这样的需要?
0
2021-05-20 21:55:52
idczone

默认提供的功能,不自己写插件是否实现这样的需要?

有站点 website0.com大带宽服务器,website1.com,website2.com,三个网站

website0 为对外服务的网站,其他为内部网站

需要: 用户访问 website0.com/xxx 返回 website1.com/abc 的数据 ,url 扔显示 website0.com/xxx 用户访问 website0.com/xxx2 返回 website2.com/lalal 的数据 ,url 扔显示 website0.com/xxx2

website1,website2 均是 get 数据

我知道上面的需求类似 api 网关,不过这是个人兴趣非工作,不需要 api 网关的那么多功能

想到的是 nginx 有重定向和反向代理,我所知道的重定向会改变地址,反向代理不能设置指定的 path 反代到站外指定 url

顾若只是使用 nginx 做,是不是无解?若可以,该怎么弄呢?能都给个 demo


这就时一个内部的 proxy,如果 url 不多就直接用 proxy_pass 指令。如果 url 很多的化,就用 openrestry,加一点点 lua 脚本就可以。

这是 Ngin 想的基本功能吧, 推荐自己研究研究, 关键字
server rewrite proxy_pass

如果只是两个 url,直接 proxy pass。
```
server_name website0.com;
location /xxx {
proxy_pass http://website1.com/abc;
}
```

还有 http 跳转的情况需要处理,仔细看看 2 楼提供的文档

谢谢
0.0 后端程序员,所以服务器这块了解很浅
谢谢你的 demo

> 反向代理不能设置指定的 path 反代到站外指定 url
怎么可能呢→_→

按照三楼的做就可以了。就默认配置加两个 location 就好

内部重定向和代理就可以了

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