卖逼视频免费看片|狼人就干网中文字慕|成人av影院导航|人妻少妇精品无码专区二区妖婧|亚洲丝袜视频玖玖|一区二区免费中文|日本高清无码一区|国产91无码小说|国产黄片子视频91sese日韩|免费高清无码成人网站入口

CDN基礎(chǔ)

基本常識網(wǎng)絡(luò)緩存技術(shù),其目的就是減少網(wǎng)絡(luò)中冗余數(shù)據(jù)的重復(fù)傳輸,使之最小化,將廣域傳輸轉(zhuǎn)為本地或就近訪問?;ヂ?lián)網(wǎng)上傳遞的內(nèi)容,大部分為重復(fù)的Web/FTP 數(shù)據(jù),Cache 服務(wù)器及應(yīng)用Caching

基本常識

網(wǎng)絡(luò)緩存技術(shù),其目的就是減少網(wǎng)絡(luò)中冗余數(shù)據(jù)的重復(fù)傳輸,使之最小化,將廣域傳輸轉(zhuǎn)為本地或就近訪問?;ヂ?lián)網(wǎng)上傳遞的內(nèi)容,大部分為重復(fù)的Web/FTP 數(shù)據(jù),Cache 服務(wù)器及應(yīng)用Caching 技術(shù)的網(wǎng)絡(luò)設(shè)備,可大大優(yōu)化數(shù)據(jù)鏈路性能,消除數(shù)據(jù)峰值訪問造成的結(jié)點設(shè)備阻塞。

cache 服務(wù)器具有緩存功能,所以大部分網(wǎng)頁對象(Webpageobject ),如html 、htm 、php 等頁面文件,gif 、tif 、 png、bmp 等圖片文件,以及其他格式的文件,在有效期(TTL )內(nèi),對于重復(fù)的訪問,不必從原始網(wǎng)站重新傳送文件實體,只需通過簡單的認(rèn)證

(FreshnessValidation )-傳送幾十字節(jié)的Header ,即可將本地的副本直接傳送給訪問者。由于緩存服務(wù)器通常部署在靠近用戶端,所以能獲得近似局域網(wǎng)的響應(yīng)速度,并有效減少廣域帶寬的消耗。

高速緩存服務(wù)器(CacheServer )是軟硬件高度集成的專業(yè)功能服務(wù)器,主要做高速緩存加速服務(wù),一般部署在網(wǎng)絡(luò)邊緣。根據(jù)加速對象不同,分為客戶端加速和服務(wù)器加速,客戶端加速Cache 部署在網(wǎng)絡(luò)出口處,把常訪問的內(nèi)容緩存在本地,提高響應(yīng)速度和節(jié)約帶寬;服務(wù)器加速,Cache 部署在服務(wù)器前端,作為Web 服務(wù)器的前置機,提高Web 服務(wù)器的性能,加速訪問速度。

如果多臺Cache 加速服務(wù)器且分布在不同地域,需要通過有效地機制管理Cache 網(wǎng)絡(luò),引導(dǎo)用戶就近訪問,全局負(fù)載均衡流量,這就是CDN 內(nèi)容傳輸網(wǎng)絡(luò)的基本思想。

CDN 的全稱是ContentDeliveryNetwork ,即內(nèi)容分發(fā)網(wǎng)絡(luò)。其目的是通過在現(xiàn)有的Internet 中增加一層新的網(wǎng)絡(luò)架構(gòu),將網(wǎng)站的內(nèi)容發(fā)布到最接近用戶的網(wǎng)絡(luò)”邊緣”,使用戶可以就近取得所需的內(nèi)容,解決Internet 網(wǎng)絡(luò)擁塞狀況,提高用戶訪問網(wǎng)站的響應(yīng)速度。從技術(shù)上全面解決由于網(wǎng)絡(luò)帶寬小、用戶訪問量大、網(wǎng)點分布不均等原因,解決用戶訪問網(wǎng)站的響應(yīng)速度慢的根本原因。

,

CDN 工作原理

用戶訪問未使用CDN 緩存網(wǎng)站的過程為:

1) 、用戶向瀏覽器提供要訪問的域名

2) 、瀏覽器調(diào)用域名解析函數(shù)庫對域名進(jìn)行解析,以得到此域名對應(yīng)的IP 地址

3) 、瀏覽器使用所得到的IP 地址,向域名的服務(wù)主機發(fā)出數(shù)據(jù)訪問請求

4) 、瀏覽器根據(jù)域名主機返回的數(shù)據(jù)顯示網(wǎng)頁的內(nèi)容

,

用戶訪問使用CDN 緩存網(wǎng)站的訪問過程:

1) 、用戶向瀏覽器提供要訪問的域名

2) 、瀏覽器調(diào)用域名解析庫對域名進(jìn)行解析,由于CDN 對域名解析過程進(jìn)行了調(diào)整,所以解析函數(shù)庫一般得到的是該域名對應(yīng)的CNAME 記錄,為了得到實際 IP地址,瀏覽器需要再次對獲得的CNAME 域名進(jìn)行解析以得到實際的IP 地址;在此過程中使用全局負(fù)載均衡DNS 解析,如根據(jù)地理位置信息解析對應(yīng)的 IP地址,使得用戶能就近訪問

3) 、此次解析得到CDN 緩存服務(wù)器的IP 地址,瀏覽器在得到實際的IP 地址以后,向緩存服務(wù)器發(fā)出訪問請求

4) 、緩存服務(wù)器根據(jù)瀏覽器提供的要訪問的域名,通過Cache 內(nèi)部專用DNS 解析(一般通過host 文件解析)得到此域名的實際IP 地址,再由緩存服務(wù)器向此實際IP 地址提交訪問請求;

5) 、緩存服務(wù)器從實際IP 地址得得到內(nèi)容以后,先在本地進(jìn)行保存,用做緩存,然后把獲取的數(shù)據(jù)返回給客戶端,完成數(shù)據(jù)服務(wù)過程;

6) 、客戶端得到由緩存服務(wù)器返回的數(shù)據(jù)以后顯示出來并完成整個瀏覽的數(shù)據(jù)請求過程。

F5產(chǎn)品資料

在3DNS 的每個WideIP 中,可以選擇三種算法,這三種算法按照預(yù)定的優(yōu)先級進(jìn)行排列。 在通常情況下,選擇RTT 動態(tài)計算方法作為系統(tǒng)的優(yōu)選算法,即所有的LocalDNS 請求均被3DNS 計算其就近性,以保證絕大部分用戶訪問的最優(yōu)化性。而Topology 算法則作為RTT 動

,

態(tài)計算的補充算法,在RTT 計算方式?jīng)]有結(jié)果的時候,將用戶請求定義到其本網(wǎng)的線路上。 GlobalAvailability 算法作為系統(tǒng)的默認(rèn)算法,將所有無法計算結(jié)果并且不在Topology 范圍之內(nèi)的LocalDNS 請求,定義到系統(tǒng)的默認(rèn)線路上。

RTT 算法運行機制:

通過3DNS 的RTT 就近性算法會自動運算生成一個ldns 就近分布表,通過這個動態(tài)的表,每個客戶上來都會提供一個最快速的鏈路進(jìn)行訪問,由于站點有 ISP1和ISP2的兩條廣域網(wǎng)線路。在3DNS 上會針對站點服務(wù)器(以www.f5.com.cn 為例) 解析ISP1和ISP2的兩個不同的公網(wǎng)地址。

對應(yīng)于www.f5.com.cn 域名,在3DNS 上配置wideip :www.f5.com.cn ,對應(yīng)兩個

VirtualServer :VS1:202.106.83.177,VS2:219.17.66.100。分別屬于ISP1和ISP2兩條線路分配的 IP地址段。在3DNS 內(nèi)部,同時定義兩個DataCenter 分別與ISP1和ISP2相對應(yīng)。

(1)首先向其所在運營商的LocalDNS 發(fā)起www.f5.com.cn 域名的DNS 請求。步驟2

(2)運營商的LocalDNS 服務(wù)器通過遞歸算法查找到工行的主、輔DNS 服務(wù)器。步驟3和4。

(3)接受到請求的3DNS 首先查詢在本地是否有該LocalDNS 的就近性表項,如果存在,則直接給LocalDNS 返回速度最快的服務(wù)器地址。如果不存在,則通知另外一臺3DNS 發(fā)起對該LocalDNS 的查詢。步驟5。

(4)兩臺3DNS 分別對LocalDNS 進(jìn)行Probe 。例如ISP1側(cè)3DNS 查詢該LocalDNS 的RTT 時間為150ms ,而ISP2側(cè) 3DNS查詢同一LocalDNS 的RTT 時間為300ms ,則此時在兩臺3DNS 內(nèi)都形成了該LocalDNS 的對應(yīng)就近性表記錄。

(5)接受到LocalDNS 請求得3DNS 根據(jù)系統(tǒng)的就近性表返回相應(yīng)的DataCenter 內(nèi)的WEB 服務(wù)器地址。步驟6。

(6)在用戶LocalDNS 獲得地址后,將該地址返回給用戶。步驟7

(7)用戶向www.f5.com.cn 網(wǎng)站發(fā)起訪問。步驟8。

通過以上流程可以看出,通過動態(tài)計算方式,可以最為準(zhǔn)確的估算出用戶LocalDNS 與兩條線路之間的速度。通過3DNS 之間的信息交互,在兩臺3DNS 上形成就近性表,并根據(jù)該表返回用戶的最佳訪問地址。

DNS_Dot:向localDNS 發(fā)起一個包含”.”的測試, 也就是向目標(biāo)LocalDNS 請求root 清單,該解析一般默認(rèn)配置的DNS 服務(wù)器均提供支持。

DNS_REV:向localDNS 發(fā)起LocalDNS 本機IP 的PTR 請求

UDP:發(fā)起一個UDP 的包, 看是否回應(yīng)

TCP:發(fā)起一個TCP 的包看是否回應(yīng)

ICMP:發(fā)起一個ICMP 的ping 包, 看是否回應(yīng)

在以上各檢測方式中,無論目標(biāo)系統(tǒng)返回那種類型的數(shù)據(jù)包,3DNS 均可認(rèn)為是有效數(shù)據(jù)包而記錄數(shù)據(jù)包往返時間,最終形成就近性表。

,

公司CDN 架構(gòu)

由一臺全局負(fù)載均衡器F5和分布在全國8個節(jié)點的CacheServer 組成,提供頁面訪問加速與下載加速功能。

序號 名稱 功能 機房

1 F5 負(fù)載均衡器 北京電信通

2 CDN-BZ CACHESERVER 山東網(wǎng)通

3 CDN-CS CACHESERVER 江蘇電信

4 CDN-CX CACHESERVER 云南電信

5 CDN-CZ CACHESERVER 河北網(wǎng)通

6 CDN-HZ CACHESERVER 浙江電信

7 CDN-NC CACHESERVER 四川電信

8 CDN-NN CACHESERVER 廣西電信

9 CDN-SY CACHESERVER 遼寧網(wǎng)通

Squid 安裝配置

squid 對硬件要求不算高。內(nèi)存是最重要的資源。內(nèi)存短缺會嚴(yán)重影響性能。磁盤空間也是另一個重要因素。更多的磁盤空間意味著更多的緩存目標(biāo)和更高的命中率??焖俚拇疟P和驅(qū)動器也是有利的。當(dāng)然快速的CPU 也是好的,但它并不是提高性能的關(guān)鍵因素。

squid 對每個緩存響應(yīng)使用少數(shù)內(nèi)存,因此在磁盤空間和內(nèi)存要求之間有一定聯(lián)系?;疽?guī)則是,每G 磁盤空間需要32M 內(nèi)存。這樣,512M 內(nèi)存的系統(tǒng),能支持16G 的磁盤緩存。內(nèi)存需求依賴于如下事實:緩存目標(biāo)大小,CPU 體系(32位或64位),同時在線的用戶數(shù)量,

,

使用的特殊功能。

1、更改操作系統(tǒng)最大打開文件數(shù)

# echo “102211″ > /proc/sys/fs/file-max

# vi /etc/sysctl.conf 加入以下一行

fs.file-max = 65535

# vi /etc/security/limits.conf 加入以下兩行

* hard nofile 65535

* soft nofile 65535

# vi /etc/rc.local 加入以下一行

ulimit -HSn 65535

重新啟動后,使用# ulimit ?a 檢查一下open files是否與所設(shè)置對應(yīng)。

2、目錄劃分

/usr/local/squid 指定安裝目錄

/var/squid/var/logs 日志目錄

/cache緩存目錄,單獨一塊硬盤

3、軟件版本與安裝

#./configure ?prefix=/usr/local/squid

?enable-async-io=20 ?enable-kill-parent-hack ?enable-poll ?enable-snmp

?disable-icmp ?disable-arp-acl ?disable-delay-pools ?disable-mem-gen-trace ?disable-ident-lookups ?disable-useragent-log

解釋

?enable-async-io=20 使用squid 異步I/O技術(shù),提升存儲性能,aufs 模塊使用18個線程來執(zhí)行磁盤I/O操作

?enable-kill-parent-hack

?disable-icmp squid能利用ICMP 消息來確定回環(huán)時間尺寸

?disable-arp-acl ARP訪問控制列表

?disable-delay-pools 延時池是squid 用于傳輸形狀或帶寬限制的技術(shù)。

?disable-mem-gen-trace

?disable-ident-lookups ident是一個簡單的協(xié)議,允許服務(wù)器利用客戶端的特殊TCP 連接來發(fā)現(xiàn)用戶名。

?disable-useragent-log 可選的useragent.log 包含來自客戶端請求的User-Agent 頭部值。

4、/usr/local/squid/etc/squid.conf

visible_hostname JL-CC01 # 服務(wù)器輸出的機器名

cache_effective_user squid # 運行squid 服務(wù)的用戶

cache_mgr cdn@vale.com.cn #squid管理員郵件地址

pid_filename /usr/local/squid/var/logs/squid.pid

coredump_dir /cache

,

icp_port 0 #取消對代理陣列的支持

hosts_file /etc/hosts # 定義hosts 文件位置

half_closed_clients off

client_lifetime 8 hours

##ACL###

acl QUERY urlpath_regex cgi-bin ?

cache deny QUERY

acl apache rep_header Server ^Apache

broken_vary_encoding allow apache

#定義IP 地址段

acl all src 0.0.0.0/0.0.0.0

acl lan src 192.168.1.0/24

acl localhost src 127.0.0.1/32

#定義目的(原始)主機表,存儲IP 地址

acl dstnetwork dst ‘/usr/local/squid/etc/src_ip’

#定義目的域名表,存儲域名

acl dstdm dstdomain ‘/usr/local/squid/etc/dstdomain’

# 定義端口

acl SSL_ports port 443 563

acl Safe_ports port 21 # ftp

acl Safe_ports port 80 81 # http

acl Safe_ports port 443 563 # https, snews

#acl Safe_ports port 70 # gopher

#acl Safe_ports port 210 # wais

#acl Safe_ports port 1025-65535 # unregistered ports #acl Safe_ports port 280 # http-mgmt

#acl Safe_ports port 488 # gss-http

#acl Safe_ports port 591 # filemaker

#acl Safe_ports port 777 # multiling http

#定義協(xié)議

acl http proto HTTP

# 只允許僅允許加密請求到端口443、563

acl CONNECT method CONNECT

,

# 只允許本地強制刪除緩存對象

acl purgemethod method PURGE

# 允許本地管理緩存端口

acl manager proto cache_object

always_direct allow dstdm # 請求轉(zhuǎn)發(fā)到目的主機

never_direct allow !dstdm # 無效請求不轉(zhuǎn)發(fā)

client_persistent_connections off

server_persistent_connections off

logformat common >a ui un [tl] “rm ru HTTP/rv” Hs

cache_dir aufs /cache 20480 16 256

# 緩存目錄,存儲機制默認(rèn)是ufs ,這里是aufs ,目錄在/cache,一級目錄16個,二級目錄256,20G 空間使用,建議將一塊硬盤空間單獨用做緩存,保留10空間存放swap.state 文件和臨時文件。

access_log /var/squid/var/logs/access.log squid

# 訪問日志存儲在/var/squid/var/logs/

cache_log /var/squid/var/logs/cache.log

# cache.log包含多種消息,例如配置信息、性能警告、以及嚴(yán)重錯誤

cache_store_log /var/squid/var/logs/store.log

# 存儲或刪除cache 目標(biāo)的日志,位置在/var/squid/var/logs/

logfile_rotate 1

cache_mem 512 MB # squid使用內(nèi)存大小,建議為系統(tǒng)內(nèi)存的1/2

maximum_object_size 100 MB # 最大緩存對象為100M

minimum_object_size 0 KB # 最小緩存對象為0K ,意思是無限制。

maximum_object_size_in_memory 1024 KB

cache_swap_low 80 # 緩存磁盤空間使用基準(zhǔn),低于80不會刪除緩存對象

cache_swap_high 90 # cache_swap_high在目前版本沒有太大作用

,

refresh_pattern -i /$ 15 90 600 reload-into-ims

refresh_pattern -i .html$ 15 90 60 reload-into-ims

refresh_pattern -i .nwe$ 15 90 60 reload-into-ims

refresh_pattern -i .nwo$ 15 90 60 reload-into-ims

refresh_pattern -i .nwf$ 15 90 60 reload-into-ims

refresh_pattern -i .nvi$ 15 90 60 reload-into-ims

refresh_pattern -i .nmv$ 15 90 60 reload-into-ims

refresh_pattern -i .nwx$ 15 90 60 reload-into-ims

refresh_pattern -i .htm$ 15 90 600 reload-into-ims

refresh_pattern -i .shtml$ 15 90 600 reload-into-ims

refresh_pattern -i .vhtml$ 30 90 600 reload-into-ims

refresh_pattern -i .hml$ 15 90 600 reload-into-ims

refresh_pattern -i .php$ 1440 90 129600 reload-into-ims

refresh_pattern -i .asp$ 15 90 600 reload-into-ims

refresh_pattern -i .jsp$ 1440 90 8640 reload-into-ims

refresh_pattern -i .gif$ 1440 90 129600 reload-into-ims

refresh_pattern -i .swf$ 1440 90 129600 reload-into-ims

refresh_pattern -i .jpg$ 1440 90 129600 reload-into-ims

refresh_pattern -i .png$ 1440 90 129600 reload-into-ims

refresh_pattern -i .bmp$ 1440 90 129600 reload-into-ims

refresh_pattern -i .js$ 120 90 600 reload-into-ims

refresh_pattern -i .css$ 120 90 600 reload-into-ims

refresh_pattern -i .wma 1440 90 21600 reload-into-ims

refresh_pattern -i .zip 1440 90 21600 reload-into-ims

refresh_pattern -i .mp3 1440 90 21600 reload-into-ims

refresh_pattern -i .rar 1440 90 21600 reload-into-ims

refresh_pattern -i .rm 1440 90 21600 reload-into-ims

refresh_pattern -i .flv$ 1440 90 21600 reload-into-ims

refresh_pattern -i .WMV$ 1440 90 21600 reload-into-ims

refresh_pattern -i .ui$ 1440 90 21600 reload-into-ims

refresh_pattern -i .exe$ 1440 90 21600 reload-into-ims

refresh_pattern -i .unix$ 1440 90 21600 reload-into-ims

refresh_pattern -i .suc$ 1440 90 21600 reload-into-ims

# -i 不區(qū)分大小寫,最小存活時間1440,最大存活時間21600,最后修改系數(shù)比例90,reload-into-ims 檢查LM-factor 百分比之前先檢查min 值。

注:最低和最高時間限制之間的響應(yīng), 遵循最后修改系數(shù) (LM-factor)算法。squid 計算響應(yīng)的年齡和最后修改系數(shù),然后將它作為百分比值進(jìn)行比較。

基于LM-factor 計算過期時間

,

squid 緩存某個目標(biāo)3個小時(基于Date 和Last-Modified 頭部)。LM-factor 的值是50,響應(yīng)在接下來的1.5個小時里是存活的,在這之后,目標(biāo)會過期并被當(dāng)作過時處理。假如用戶在存活期間請求cache 目標(biāo),squid 返回沒有確認(rèn)的cache 命中。若在過時期間發(fā)生請求,squid 轉(zhuǎn)發(fā)確認(rèn)請求到原始服務(wù)器。

squid 的refresh_pattern算法的簡單描述:

假如響應(yīng)年齡超過refresh_pattern的max 值,該響應(yīng)過期;

假如LM-factor 少于refresh_pattern百分比值,該響應(yīng)存活;

假如響應(yīng)年齡少于refresh_pattern的min 值,該響應(yīng)存活;

其他情況下,響應(yīng)過期。

5、squid 常用命令

# /usr/local/squid/sbin/squid ?z

初始化cache 目錄,建立新的CACHE 目錄后需要執(zhí)行,另外需要squid 用戶對此目錄擁有權(quán)限。

# /usr/local/squid/sbin/squid -k parse

在啟動squid 之前,你應(yīng)該謹(jǐn)慎的驗證配置文件。

# /usr/local/squid/sbin/squid ?Ds

啟動squid 。禁止初始化DNS 測試。正常情況下,squid 直到驗證它的DNS 可用才能啟動。將日志記錄到syslog 進(jìn)程

# /usr/local/squid/sbin/squid -k shutdown

停止squid 。

# /usr/local/squid/sbin/squid -k rotate

滾動日志。

# vi /etc/rc.local

ulimit -HSn 102211

/usr/local/squid/sbin/squid -Ds

/usr/local/apache2/bin/apachectl -k start

# crontab ?e

0 */8 * * * /usr/local/squid/sbin/squid -k rotate # 每8小時回滾日志一次

0 */12 * * * /usr/sbin/ntpdate 210.72.145.44 && clock ?w # 每12小時校正時鐘一次

6、業(yè)務(wù)系統(tǒng)問題解決

問題:緩存不同步

現(xiàn)象:不同地區(qū)顯示頁面不一致

解決:在8臺cache 服務(wù)器手工刷新緩存,由業(yè)務(wù)部門提供有問題的URL 鏈接。

標(biāo)簽: