Home | 简体中文 | 繁体中文 | 杂文 | 知乎专栏 | Github | OSChina 博客 | 云社区 | 云栖社区 | Facebook | Linkedin | 视频教程 | 打赏(Donations) | About
知乎专栏多维度架构 微信号 netkiller-ebook | QQ群:128659835 请注明“读者”

第 2 章 多维度架构之网站HTML

目录

2.1. 网站的历史演变
2.1.1. 常用软硬件组成
2.1.2. 第一代纯静态网站
2.1.3. 第二代纯文本文件采用分隔符做数据存储网站
2.1.4. 第三代数据库存储网站
2.1.5. 第四代DNS负载均衡加反向代理
2.1.6. 第五代负载均衡集群
2.2. 集群(Cluster)
2.2.1. 负载均衡
2.2.1.1. DNS负载均衡
2.2.1.2. 软件四层交换负载均衡
2.2.1.3. 应用层负载均衡
2.2.2. 高可用性集群
2.2.3. 负载均衡设备
2.2.4. 会话保持
2.2.5. 健康状态检查
2.3. 缓存技术
2.3.1. 浏览器缓存
2.3.1.1. Cache-Control
2.3.1.1.1. 在程序中灵活操作 Cache-Control
2.3.1.1.2. 非程序文件缓存处理
2.3.1.2. Expires
2.3.1.3. If-Modified-Since / Last-Modified
2.3.1.4. ETag / If-None-Match
2.3.2. CDN (Content Delivery Network) 与反向代理缓存
2.3.2.1. CDN接口API
2.3.2.2. 方向代理页面过期处理
2.3.2.3. 内容版本化
2.3.3. 负载均衡设备
2.3.4. WEB服务器缓存
2.3.5. 应用程序缓存
2.3.6. 数据库缓存
2.4. 网站静态内容出版
2.4.1. 架构总览
2.4.2. 静态化实现手段有哪些?
2.4.2.1. 生成方式
2.4.2.2. 抓取方式
2.4.2.3. 伪静态化
2.4.2.4. 混合方式
2.4.2.5. 静态化中的动态内容
2.4.3. cdn
2.4.4. www 服务器
2.4.5. cms 服务器
2.4.6. img
2.4.7. Ajax 局部更新与缓存
2.5. 多媒体数据分离
2.5.1. 图片服务器分离
2.5.2. 目录层次规划
2.5.3. 多域名访问
2.6. 图片尺寸优化与自动裁剪
2.6.1. 背景
2.6.2. 实现思路
2.6.2.1. 尺寸动态变化
2.6.2.2. 实时裁剪并静态化
2.6.3. web或代理服务器插件实现方案
2.7. 压缩数据传输
2.7.1. Minify JS
2.7.1.1. jsmin
2.7.1.2. yuicompressor
2.7.1.3. shrinksafe
2.8. SSL
2.9. 搜索引擎相关优化
2.9.1. 搜索结果静态化
2.9.2. robots.txt
2.9.3. sitemaps
2.9.4. Sitemap in robots.txt
2.9.5. sitemap 静态内容生成工具
2.10. 静态网站繁简转换
	
                                       .---> media [mp3, wma, wmv, rmvb, asf, divx]-\
                                      /                                       +------------+
                                     .-----> photo [gif, jpg, png, swf] ----> | Raid Array | <--.
    /------------------- <---------\/                                         +------------+     \
user -> dns -> load balancing -> squid -> [cache] <----[html]----\                  /            |
                 \ \ \______<______/\                      +-------------+         /             |
                  \ \                \-----> web app ----> | html        |--------^              |
                   \ \____________________________/\       | php,jsp,cgi |                       |
                    \                               \      +-------------+                       |
                     \                               `-----> memcached [node1, node2, node(n)]   |
                      \__________________________________________/\                              |
                                                                   `------> Database cluster     |
    +--------------------------------------+                                      \              |
    | Author: neo chen <openunix#163.com>  |                                       `-------------+
    | Nickname: netkiller                  |
    | Homepage: http://netkiller.github.io |
    +--------------------------------------+
	
	

2.1. 网站的历史演变

2.1.1. 常用软硬件组成

一个网站由下面几部分组成:

网站组成

  1. 硬件 hardware

  2. 操作系统 operation system

  3. 应用软件 application software

  4. 网站程序以及开发语言 web program and script

硬件包括

  1. 网络硬件(路由器 route, 交换机 switch)

  2. 服务器 server

  3. KVM over IP

  4. 其他包括,机柜等

操作系统包括

  1. Windows Server

  2. Linux

  3. FreeBSD

  4. Other(Sun,Novell,Sco...)

其中应用软件按平台分类

Windows 应用软件包括

  1. dns (dns)

  2. web (IIS)

  3. ftp (IIS)

  4. mail (Exchange)

  5. database (SQL Server)

  6. ldap (Active Directory)

Unix like 应用软件包括

  1. dns (bind)

  2. web (apache, lighttpd, tomcat)

  3. ftp (proftpd, pureftpd, wu-ftp, vsftpd)

  4. mail (sendmail,postfix, qmail)

  5. database (PostgreSQL, MySQL)

  6. ldap (OpenLDAP)

其他应用软件包括

  1. cache (squid, nginx, memcached...)

  2. web (jboss, weblogic...)

  3. database (Oracle, DB2...)

网站程序以及开发语言

  1. php

  2. java (jsp)

  3. .net (aspx)

  4. fastcgi (python,perl,rubby,c/c++ ...)

怎样定义多大的网站叫大型网站呢?我也不知道,但凡大型网站都具备本文所提的几点。

门户网站的需求

  1. 海量用户访问

  2. 海量用户存储

  3. 国内外互通及南北互通

  4. 快速响应

  5. 7×24不间断运行

  6. 易于维护

门户网站的几个技术要点

  1. 智能域名服务器 Smart DNS

  2. 集群负载均衡 Cluster

  3. 缓存技术 Cache

  4. 静态化

  5. 图片服务器分离

  6. 压缩数据传输

  7. 时间同步

  8. 数据存储

2.1.2. 第一代纯静态网站

ftp/rsync 同步

2.1.3. 第二代纯文本文件采用分隔符做数据存储网站

这是出现了cgi/isapi/nsapi技术,perl 成为主流

2.1.4. 第三代数据库存储网站

出现动态脚本语言如php,asp,coldfusion,这个时期 php成为主流

出现所见即所得网页工具

256色gif 动画

2.1.5. 第四代DNS负载均衡加反向代理

开发语言则百花齐放php,asp.net,java,三大主流三足鼎立。perl慢慢没落。

flash 动画

2.1.6. 第五代负载均衡集群

ajax, css+div, xhtml