nginx 转发,如何将生产请求,转发到本地开发localhost

如题,vue项目打包后,我想将通过nginx代理,将原本的访问生产环境ip的请求,转发到本地localhost

nginx 代理片段如下

location /api/ {
  proxy_pass http://localhost:8888/;
}
此时访问
http://www.abc.com/api/articleInfo/findList/1
想转发到
http://localhost:8888/articleInfo/findList/1
该如何实现呢?
阅读 9.6k
5 个回答

正常情况下实现不了

特定场景下可以

  1. 生产环境和你的本机在同一个局域网,那么你把 localhost 换成你内网地址即可。
  2. 你把域名直接解析到本地。这样你再去区分什么情况下代理到生产,什么情况下,代理到 http://localhost:8888/; 即可。

你是想让自己请求访问到你本地机器,还是所有用户的?
自己的话,不需要配代理,直接加host, 将域名绑定即可
所有的用户的话,这个思路是有问题的,一个生产的机器是没办法代理到你本机的,在上面配localhost 是代码当前机器的本机

你应该需要的是内网穿透

有些限制

  1. 你的生产环境与你的开发环境要能联通
  2. 你的开发环境也需要搭建起相应服务

在此基础上,你在生产环境的nginx配置中,按你

location /api/ {
  proxy_pass http://localhost:8888/;
}

类似的处理,只是需要把localhost换成你开发环境主机IP(这个IP生产环境能直接访问到)即可。

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