zoukankan      html  css  js  c++  java
  • 如何动静分离?

    原文地址:如何动静分离? 作者:expert1

        某次面试,hire manager问我如何做一个大规模的网站,我把我所知道的都讲了,包括squid做的cdn cache等等,他又问我,你觉得cdn这部分有什么瓶颈吗?我当时只想到所有动静态请求都路过squid,只是苦苦想着如何去掉动态的请求,他接着问,如何实现?我当时真想不到办法了。后来突然想起看的介绍,实际上我也接触过的,域名分离即可。比如某client的某个请求包含http:/xxx.com,这里肯定包含了图片,css,html之类,也少不了动态脚本比如php,jsp等需要交互的sql查询,那么涉及到静态的部分,按照dns的策略,到squid上,走之前的路,而动态的直接回web源即可。
         这个也不是没有弊端,程序里涉及到静态资源连接如图片等一律写域名。比如
    • <?php
    • echo "this is sina corporation logo picture :";
    • ?>

    ok,打开浏览器输入http://10.1.1.1/pic.php

        fine ,it works now,看到了sina的logo,以此类推,只需要遵守html语法规则,在你想要的地方插入图片url,而这图片放在另外的server上,有单独的domain,可以cname到cdn上,这样你打开www.sina.com,凡是需要查询的走10.1.1.1,涉及到图片的,直接走http协议到pic 服务器上取,好伟大的html啊。动静就这样分离了,唯一需要确认的就是图片的url要正确,可以在pic前面放api,专门查询后端的图片位置,仅此而已。

       再扩展一下:

    1. <?php
    2. $url="http://i3.sinaimg.cn/home/deco/2009/0330/logo_home.gif";
    3. echo "this is sina corporation logo picture :";
    4. ?>

    这样图片url确定了,少量的图片前端开发还能写上去,但成千上万张呢?还有这样固定了,也不方便扩展啊?如何来做?需要在pic前开一个API给前端调用,比如这里/home/deco/2009/0330/logo_home.gif可以记录在mysql,然后前端需要的时候,直接select 数据库查到图片的存储路径,然后拼接成$url给前端。

    就是sql=select * from pic_table where '条件=xxx';

    把查询结果/home/deco/2009/0330/logo_home.gif赋给$path

    拼凑新的url,$url="http://i3.sinaimg.cn".$path;

    ok,图片链接完成。

    简述结束。

  • 相关阅读:
    与众不同 windows phone (50)
    与众不同 windows phone (49)
    重新想象 Windows 8.1 Store Apps (93)
    重新想象 Windows 8.1 Store Apps 系列文章索引
    重新想象 Windows 8.1 Store Apps (92)
    重新想象 Windows 8.1 Store Apps (91)
    重新想象 Windows 8.1 Store Apps (90)
    重新想象 Windows 8.1 Store Apps (89)
    重新想象 Windows 8.1 Store Apps (88)
    重新想象 Windows 8.1 Store Apps (87)
  • 原文地址:https://www.cnblogs.com/wajika/p/6232210.html
Copyright © 2011-2022 走看看