您的位置:首页 > 其它

避免跨域的CDN部署方案

2016-02-06 22:37 429 查看
我们的一个项目采用动静分离的部署方式,服务接口在自己的服务器上,静态资源保存在OSS,通过CDN访问。不过这样有时会有跨域问题。本文总结解决的办法

原来的做法

原本的做法,服务接口部署在自己的服务器上,通过域名api.xxx.com访问,不走CDN

静态文件,包括html,css,js,图片等,部署在OSS上,通过域名s.xxx.com访问,经过CDN加速

这种架构在性能上表现很不错,但是服务接口是通过ajax调用的,通过设置Access-Control-Allow-Origin允许跨域请求,但是这需要跨域

而实践发现,在某些移动端的浏览器里,跨域访问失败。比如三星S3,某些vivo手机等。因为这涉及到安卓版本,手机型号,浏览器版本等,很难彻底解决

所以最后就考虑能否通过改进部署方式,来彻底避免跨域请求

新的方案

希望实现2个目的:

1、静态资源和服务接口需要在同一个域名下

2、域名要通过CDN加速,保证性能

现在的做法,是把静态资源和服务接口都部署到自己的服务器上,把自己服务器作为CDN的源站

然后在CDN上配置规则,对于/svc开头的url,不设置缓存(即确保这种请求回源)即可

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: