美文网首页
Nginx转发+反向代理实现跨域接口转发

Nginx转发+反向代理实现跨域接口转发

作者: 键盘上的码农 | 来源:发表于2020-03-27 14:22 被阅读0次

最近工作遇上业务交接不彻底还有一些乱七八糟原因,导致我需要将几个接口的请求转发到新团队负责的域名下。

参考文档:

https://blog.csdn.net/yeguxin/article/details/94020476

https://liguangming.com/nginx-return-tips

https://segmentfault.com/a/1190000018163817

主要是为了记录自己工作中解决的一些问题,所以笔记就简单一些,涉及到工作的一些具体数据就不记录了

原域名:soa.api.local

目标域名:newsoa.api.local

方法名:functionName

第一版:

出于偷懒的方式,直接选择return进行跳转

return 200 $scheme://newsoa.api.local$request_uri;

结果通过Http请求返回的是字符串

"http://newsoa.api.local/functionName?body={"id":770080,"bid":9}&param1=param1&param2=param2"

第二版:

使用rewrite进行重定向

rewrite ^(.*)$ http://newsoa.api.local$1 break;

但是有点问题,在浏览器中可以看到跳转到新的域名了,但是打开开发者工具会看到有两次请求,第一次是对原域名soa.api.local的请求,返回的HttpCode为302。第二次请求为重定向后的请求。

所以如果客户端跟踪重定向,那根本就获取不到第二次请求的数据。

第三版

使用rewrite和反向代理实现

location /functionName{

    rewrite ^/functionName/(.*)$ $request_uri break;

    proxy_pass http://newsoa.api.local; 

}

终于达到我要的效果了,客户端能保持当前链接不变的情况下获取到重定向后的数据。

相关文章

  • Nginx转发+反向代理实现跨域接口转发

    最近工作遇上业务交接不彻底还有一些乱七八糟原因,导致我需要将几个接口的请求转发到新团队负责的域名下。 参考文档: ...

  • 用nginx的反向代理机制解决前端跨域问题

    用nginx的反向代理机制解决前端跨域问题 Vue做前台,后台走接口就会遇到跨域问题。这里Nginx做反向代理是一...

  • nginx反向代理

    前端调用接口的时候跨域了怎么办呢,如下代码跨域: 通过nginx反向代理下载nginx:http://nginx....

  • 18. Tomcat - 结合反向代理实现Tomcat部署

    4. 结合反向代理实现Tomcat部署 4.1 常见部署方式介绍 4.2 利用nginx反向代理实现全部转发置指定...

  • 4种方法解决js跨域的实现方式

    一、JSONP 使用ajax实现跨域: 二、CORS跨域资源共享 三、Nginx反向代理 四、webpack (在...

  • [转]从部署架构角度看Envoy

    Envoy:路由转发和反向代理功能。一般作为网关或者反向代理。代理转发功能类似的有:nginx、kong、envo...

  • ajax跨域--nginx反向代理

    用nginx反向代理实现跨域,是最简单的跨域方式。只需要修改nginx的配置即可解决跨域问题,支持所有浏览器,支持...

  • 六、接口网关

    一、什么时接口网关 接口网关作用是拦截请求,解决跨域问题,类似于nginx的反向代理。在SpringCloud中用...

  • Linux搭建nginx负载均衡集群

    负载均衡通过 nginx 配置反向代理实现,这样我们只需要访问 nginx 即可,由 nginx 决定在内部转发到...

  • 代理、转发

    代理、转发 正向代理,代理客户端,例如 vpn。 反向代理,代理服务端,例如 Nginx 分发流量。 Nginx可...

网友评论

      本文标题:Nginx转发+反向代理实现跨域接口转发

      本文链接:https://www.haomeiwen.com/subject/frtluhtx.html