转载

通过nginx反向代理实现接口跨域问题

缘起

开发公司的一个项目时采用的是RESTFUL接口形式,token等权限验证信息是注入在http请求的header头部的.因为是在内网进行调试,接口的域名为 a.com ,为了方便在家的时候进行开发调试,将接口挂在了外网.因80端口被运营商限制,于是使用了另外的端口.而我在本地虚拟了一个 b.com 的域名,请求,直接显示跨域...

尝试一

在我的 b.com 域名下使用了一个php页面来进行301跳转,但是发现很是麻烦,需要提取出我实际需要的url再进行转发,该方案被放弃

尝试二

本地用nginx绑定了一个非80端口的 a.com 域名,然后nginx内做了反向代理到接口,结果发现忘记了域名相同端口不同也算跨域,该方案直接被打死= =

尝试三

受方案一和方案二的灵感,想到为何不直接使用nginx反向代理到接口服务器?使用我本地 a.com 中一个永远不会存在的url作为接口的跳板,然后nginx讲该url反向代理到接口服务器.ok,尝试,成功!

附上nginx配置信息:

server {  listen 80;  server_name a.com;  root /wwwroot/test;  autoindex off;  index index.html index.htm index.php;  # 将a.com/api的所有请求反向代理到b.com:1234  location /api {   rewrite ^.+api/?(.*)$ /$1 break;   proxy_pass b.com:1234;  }  location ~ //.ht {     deny  all;  } }  

本文基于 "姓名标识-非商业性-相同方式分享 4.0国际" 协议创作或转载,转载原创文章请注明来源于 疯子的自留地 ,否则请勿转载或再转载,谢谢合作:)

正文到此结束
Loading...