关于nginx的反向代理的问题

我本地有一个服务监听4000端口http://127.0.0.1:4000,其下还有http://127.0.0.1:4000/test这种路径。
现在我需要nginx配置8000端口下的 /proxy 代理到4000端口下的 /
例如访问http://127.0.0.1:8000/proxy/会代理到http://127.0.0.1:4000/,访问http://127.0.0.1:8000/proxy/test会代理到http://127.0.0.1:4000/test。
但是自己配置失败了,以下的错误截图和配置截图。

图片描述

图片描述

图片描述

图片描述

以下是配置截图
图片描述

但是如果我配置location /test ,则可以代理到http://127.0.0.1:4000/test,以下是截图

图片描述

图片描述

所以想请教一下关于这个问题,该如何配置,有相关的文章或资料更好了。

阅读 4.6k
3 个回答
location /proxy/ {
    rewrite /proxy/(.*) /$1 break;
    proxy_pass         http://127.0.0.1:4000;
    proxy_redirect     off;
}

你应该在4000服务器下配置个rewrite

 rewrite ^/proxy/(.*)$ $1;

应该是这么写,你试一下

location ^~ /proxy {

proxy_pass         http://127.0.0.1:4000;

}
试试这样,应该是匹配规则的问题。
图片描述

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题