开发公司的一个项目时采用的是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国际" 协议创作或转载,转载原创文章请注明来源于 疯子的自留地 ,否则请勿转载或再转载,谢谢合作:)