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