想请教一个 Nginx 反向代理跳转的问题

2020-05-22 19:51:35 +08:00
 RedRoute

大家好,工作中遇到一个棘手的小问题,由于时间比较急,没查到详细的信息,所以想请教一下大家,谢谢啦

如何用 nginx 将 IP 地址 /api/ 代理到 IP 地址 / ? 例子:IP 地址 /api/user/userlist 代理到 IP 地址 /user/userlist

2410 次点击
所在节点    程序员
10 条回复
lower
2020-05-22 19:56:02 +08:00
好像要用 rewrite
fcxjluo
2020-05-22 20:04:15 +08:00
location /api/user/userlist {
rewrite /api/user/userlist /user/userlist break;
proxy_pass http://ip;
}
fcxjluo
2020-05-22 20:05:13 +08:00
location /api/user/userlist {
rewrite /api/(.*) /$1 break;
proxy_pass http://ip;
}
ragnaroks
2020-05-22 20:06:14 +08:00
google: proxy_pass
foam
2020-05-22 20:08:35 +08:00
RedRoute
2020-05-22 22:45:37 +08:00
@fcxjluo 非常感谢,后面我会好好学习一下的

@ragnaroks 最近有点严,所以没出去查

@foam 感谢分享,博客还蛮漂亮的,嘻嘻
foam
2020-05-22 23:44:45 +08:00
@RedRoute 欢迎白天再来看看,是另一个模式哦
zhengjian
2020-05-22 23:54:35 +08:00
https://xuexb.github.io/learn-nginx/example/proxy_pass.html

摘抄:

// 访问: /api/ 后端: /
// 访问: /api/xx 后端: /xx
// 访问: /api/xx?aa 后端: /xx?aa
// 访问: /api-xx?aa 未匹配
location /api/ {
proxy_pass http://node:8080/;
}
hstv
2020-05-22 23:58:36 +08:00
@zhengjian 这个正解。
location /api/ {
proxy_pass http://ip; #会指向 http://ip/api/user/userlist
proxy_pass http://ip/; #会指向 http://ip/user/userlist
}
RedRoute
2020-05-23 08:51:44 +08:00
@zhengjian
@hstv
location /api/ {
proxy_pass http://node:8080/;
}
感谢二位了,这个解法是对的,http://ip:8080/api/test 转发到 http://ip:8080/test,因为 IP 地址就是服务器地址,所以
后来实现的写法是这样的

server {
listen 8080;
root /abc/def;
location / {
index index.html;
}
location /api/ {
proxy_pass http://127.0.0.1:8080/;
}
}

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

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

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

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

© 2021 V2EX