为了账号安全,请及时绑定邮箱和手机立即绑定

Nginx 如何反向代理多个端口到同一端口不同目录上?

Nginx 如何反向代理多个端口到同一端口不同目录上?

ibeautiful 2019-03-04 17:11:24
如何配置 Nginx 的反向代理,使多个端口代理到同一端口的不同目录上?我有应用 a 、b 和 c ,各自运行在 8001 、8002 和 8003 端口上。服务器没有配置域名,所以访问地址是 ip:8001 、ip:8002 和 ip:8003 。现在我想用 Nginx 实现,只开放一个 80 端口,然后通过不同的目录来访问不同的服务。我期望访问地址可以变成 ip:80/a 、ip:80/b 和 ip:80/c 。并且该应用下所有的资源请求都是基于该路径下。比如 ip:80/a 可以跳转到 ip:80/a/login ,而不是 ip:80/login ,注意目录的不同。我的 /etc/nginx/conf.d/default.conf 如下:server {    listen       80;    server_name  localhost;    location /a {        proxy_pass http://127.0.0.1:8001/;     }    location /b {        proxy_pass http://127.0.0.1:8002/;     }    location /c {        proxy_pass http://127.0.0.1:8003/;     } }按我上面的配置,输入 ip:80/a 的确看到成功代理了 ip:8001 的应用,只看首页,一切都是正常的。但是一跳转 ip:80/a/user/** 这样的多级目录,就失败了,变成 ip:80/user/** 。我也试过按官方文档,用正则配置 location 或用 rewrite ,都无法实现我想要的效果。谢谢指教。
查看完整描述

2 回答

?
一只萌萌小番薯

TA贡献1795条经验 获得超7个赞

我试过了,不可以的,除非有域名。

查看完整回答
反对 回复 2019-03-04
  • 2 回答
  • 0 关注
  • 7203 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信