nginx 能到实现这样的需要?

2018-02-26 10:39:22 +08:00
 cnbattle

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

有站点 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

3711 次点击
所在节点    NGINX
8 条回复
jswh
2018-02-26 10:45:06 +08:00
这就时一个内部的 proxy,如果 url 不多就直接用 proxy_pass 指令。如果 url 很多的化,就用 openrestry,加一点点 lua 脚本就可以。
zhu327808
2018-02-26 10:47:20 +08:00
这是 Ngin 想的基本功能吧, 推荐自己研究研究, 关键字

server rewrite proxy_pass
Lax
2018-02-26 10:54:09 +08:00
如果只是两个 url,直接 proxy pass。
```
server_name website0.com;

location /xxx {
proxy_pass http://website1.com/abc;
}
```
Lax
2018-02-26 10:54:55 +08:00
还有 http 跳转的情况需要处理,仔细看看 2 楼提供的文档
cnbattle
2018-02-26 10:57:08 +08:00
@jswh 谢谢

@zhu327808 0.0 后端程序员,所以服务器这块了解很浅

@Lax 谢谢你的 demo
msg7086
2018-02-26 12:56:56 +08:00
> 反向代理不能设置指定的 path 反代到站外指定 url

怎么可能呢→_→
mentalidade
2018-02-26 13:54:30 +08:00
按照三楼的做就可以了。就默认配置加两个 location 就好
cnbobolee
2018-02-26 16:50:22 +08:00
内部重定向和代理就可以了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/432653

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX