默认提供的功能,不自己写插件是否实现这样的需要?
有站点 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
1
jswh 2018-02-26 10:45:06 +08:00
这就时一个内部的 proxy,如果 url 不多就直接用 proxy_pass 指令。如果 url 很多的化,就用 openrestry,加一点点 lua 脚本就可以。
|
2
zhu327808 2018-02-26 10:47:20 +08:00
这是 Ngin 想的基本功能吧, 推荐自己研究研究, 关键字
server rewrite proxy_pass |
3
Lax 2018-02-26 10:54:09 +08:00
如果只是两个 url,直接 proxy pass。
``` server_name website0.com; location /xxx { proxy_pass http://website1.com/abc; } ``` |
4
Lax 2018-02-26 10:54:55 +08:00
还有 http 跳转的情况需要处理,仔细看看 2 楼提供的文档
|
6
msg7086 2018-02-26 12:56:56 +08:00
> 反向代理不能设置指定的 path 反代到站外指定 url
怎么可能呢→_→ |
7
mentalidade 2018-02-26 13:54:30 +08:00
按照三楼的做就可以了。就默认配置加两个 location 就好
|
8
cnbobolee 2018-02-26 16:50:22 +08:00
内部重定向和代理就可以了
|