Chinaunix首页 | 论坛 | 博客
  • 博客访问: 509736
  • 博文数量: 112
  • 博客积分: 10
  • 博客等级: 民兵
  • 技术积分: 662
  • 用 户 组: 普通用户
  • 注册时间: 2011-02-20 07:22
个人简介

一步一个脚印

文章分类

全部博文(112)

文章存档

2019年(2)

2017年(2)

2016年(2)

2015年(6)

2014年(35)

2013年(65)

分类: IT职场

2014-10-15 16:40:40

原文地址:如何动静分离? 作者: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,打开浏览器输入

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

       再扩展一下:

    1. <?php
    2. $url="";
    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="".$path;

    ok,图片链接完成。

    简述结束。

     

    阅读(1538) | 评论(0) | 转发(0) |
    给主人留下些什么吧!~~