以B站为例:

主域名:www.bilibili.com

账户登录注册相关域名,包括app登录:passport.bilibili.com

静态资源css,js,img等相关域名:static.bilibili.com

用户中心相关域名:space.bilibili.com

webapi接口相关域名:api.bilibili.com

app接口相关域名:app.bilibili.com

另外有一些隐性的域名:

例如数据库连接相关的:db.bilibili.com

redis缓存相关的:redis.bilibili.com

由此可见:

系统的架构无非就是一个“拆”字,合理的将不同的模块拆分成不同的域名,有以下几点好处

1、每个域名配置独立的服务器,服务器的业务更加专注,扩展更加方便。

2、针对特定的业务,可以更方便的对服务器进行优化。

相关分析

1、登录状态,设置cookie,范围域名未.bilibili.com,保证跨域名能登录状态

2、用户中心用特定域名,增加url的友好性,防止url过长,能直接https://space.bilibili.com/2374194这种域名+id的格式,url表现力极强。

3、api相关用api.bilibili.com域名。

4、动态数据,例如首页,各分区页,数据变更频繁的页面,全部用ajax请求数据的方式,因为数据变换频繁,也就没有渲染兼容seo的必要了。

5、播放页,最重要的一个页面,相关标题和简介等,则需要用到渲染的方式,兼容seo,其他一些动态数据,例如评论,播放量等数据,统一用ajax加载。

6、cdn,静态资源css,js,img等统一设置了很长的cdn缓存,更新用url参数版本号来控制。

7、甚至一些非动态的接口数据,也可以用cdn来缓存,从而减少db和redis的压力。

关于api接口以及页面数据通信域名,缓存cdn设置优化的更多相关文章

  1. abp 基于api接口的页面内容提交

    项目中,后端api接口需要接收来自页面提交的数据.注意下拉控件对应值,应该按以下方式赋值 @Html.DropDownListFor(m => m.IsFolder, new List<S ...

  2. api接口开发跨域注意事项和设置

    因为跨域请求会先发送一个OPTIONS请求,所以需要判断下OPTIONS请求的就直接返回 if(strtoupper($_SERVER['REQUEST_METHOD'])== 'OPTIONS'){ ...

  3. php下api接口的并发http请求

    php下api接口的并发http请求 ,提高app一个页面请求多个api接口,页面加载慢的问题: func_helper.php/** * 并发http请求 * * [ * 'url' //请求地址 ...

  4. 关于vue2用vue-cli搭建环境后域名代理的http-proxy-middleware解决api接口跨域问题

    在vue中用http-proxy-middleware来进行接口代理,比如:本地运行环境为http://localhost:8080但真实访问的api为 http://www.baidu.com这时我 ...

  5. 万网域名查询API接口

    域名查询 接口地址:http://panda.www.net.cn/cgi-bin/check.cgi 接口采用HTTP,POST,GET协议 参数名称:area_domain 值为标准域名,例:nm ...

  6. nginx配置一、二级域名、多域名对应(api接口、前端网站、后台管理网站)

    前提:安装好nginx,如果已经启动nginx,先停止,命令: ./usr/local/nginx/sbin/nginx -s stop 修改nginx配置 vi /usr/local/nginx/c ...

  7. Tomcat 配置 项目 到tomcat目录外面 和 域名绑定访问(api接口、前端网站、后台管理网站)

    先停止tomcat服务 1.进入apache-tomcat-7.0.68/conf/Catalina/localhost(如果之前还都没有启动过tomcat,是不会有此目录的,先启动一次再关闭,会自动 ...

  8. 【AMAD】dogpile.cache -- 一个Python缓存API,提供一套通用的接口来适配不同的缓存后端

    简介 动机 作用 用法 个人评分 简介 Dogpile1由两套子系统组成,其中一个是基于另一个来构建的. dogpile提供了dogpile lock的概念,这个控制结构让一个线程可以被选为一些资源的 ...

  9. php后台对接ios,安卓,API接口设计和实践完全攻略,涨薪必备技能

    2016年12月29日13:45:27    关于接口设计要说的东西很多,可能写一个系列都可以,vsd图都得画很多张,但是由于个人时间和精力有限,所有有些东西后面再补充   说道接口设计第一反应就是r ...

随机推荐

  1. Docker监控:最佳实践以及cAdvisor和Prometheus监控工具的对比

    在DockerCon EU 2015上,Brian Christner阐述了“Docker监控”的概况,分享了这方面的最佳实践和Docker stats API的指南,并对比了三个流行的监控方案:cA ...

  2. Dubbo ==> 简介

    一.架构发展过程 首先,我们先来看看上面的架构发展的线路图:单一应用架构 --> 垂直应用架构 --> 分布式服务架构 --> 流动计算架构 . 单一应用架构 在一些中小型的传统软件 ...

  3. java设计模式中的动态代理

    Java的三种代理模式 1.代理模式 代理(Proxy)是一种设计模式,提供了对目标对象另外的访问方式;即通过代理对象访问目标对象.这样做的好处是:可以在目标对象实现的基础上,增强额外的功能操作,即扩 ...

  4. 转载:深入浅出 Java 8 Lambda 表达式

    原文地址:http://viralpatel.net/blogs/Lambda-expressions-java-tutorial/ OneAPM for Java 能够深入到所有 Java 应用内部 ...

  5. CentOS8 缺少 libglade2 安装包的回避方法

    某些gtk2应用程序需要libglade2安装包,但不知为何CentOS的yum仓库里没有此包, 经测试,可手动安装CentOS7的rpm包安装解决. 更新:使用下面一行即可.sudo yum ins ...

  6. springboot-自定义异常处理器

    @Order(-1000) public class LocalExceptionResolver implements HandlerExceptionResolver { @Override pu ...

  7. MySQL InnoDB存储引擎大观

    转的一篇文章作者:七把刀链接:https://www.jianshu.com/p/d4cc0ea9d097 MySQL InnoDB 引擎现在广为使用,它提供了事务,行锁,日志等一系列特性,本文分析下 ...

  8. Kubernetes 相关镜像pull 不下来问题收集

    1. 可在相关的镜像前添加 keveon 或者 mirrorgooglecontainers 就可以下载镜像, 然后在修改 tag docker pull mirrorgooglecontainers ...

  9. JMeter-- ThreadGroup原理分析

    JMeterEngine会驱动JMeter ThreadGroup启动Test Threads 执行测试,其本身也是一个Runnable,这里把测试驱动(JUnit或者其他类似main之类的)看作主线 ...

  10. [AcWing303/304]任务安排2/3

    [AcWing303]任务安排2 有 \(N\) 个任务排成一个序列在一台机器上等待执行,它们的顺序不得改变.机器会把这 \(N\) 个任务分成若干批,每一批包含连续的若干个任务.从时刻 \(0\) ...