天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

實戰(zhàn)ASP.NET大規(guī)模網(wǎng)站架構(gòu):Web加速器

  大規(guī)模網(wǎng)站瓶頸之一就是性能問題,如何讓你的網(wǎng)站飛速運轉(zhuǎn)起來,一直是架構(gòu)師和開發(fā)人員苦于思考的問題。文章將針對基于ASP.NET開發(fā)的網(wǎng)站交互性非實時部分進行討論。

  一、WEB加速通常有如下方案:

  1、基于ASP.NET技術(shù)的頁面緩存

  基于ASP.NET技術(shù)的頁面緩存,通常有如下兩種應(yīng)用方式:

  一、基于數(shù)據(jù)庫觸發(fā)(設(shè)置緩存依賴策略,當數(shù)據(jù)庫中數(shù)據(jù)發(fā)生變化時,觸發(fā)緩存失效;但微軟提供的解決方案目前僅支持SQL Server,如果是ORACLE需要自己實現(xiàn)觸發(fā)接口)。

  二、基于文件依賴的策略(可以設(shè)置緩存依賴于文件中的具體鍵值,當數(shù)據(jù)更新時,更新文件鍵值迫使緩存失效)。

  優(yōu)點:實現(xiàn)比較簡單  

  缺點:粒度太粗,對IIS、.NET Framework依賴太強,策略還不太完善,跨機器、集群訪問方面存在瓶頸。

  2、頁面靜態(tài)化

  頁面靜態(tài)化有可分為全部靜態(tài)化、局部靜態(tài)化、偽靜態(tài)化等。

  優(yōu)點:頁面靜態(tài)化后,減輕了數(shù)據(jù)訪問的負擔,同時由于靜態(tài)頁面不需要復(fù)雜處理過程(如ASP.NET頁面生命周期),從而提高網(wǎng)站的性能。

  缺點:頁面靜態(tài)化增加了維護管理的復(fù)雜度,可能同一頁面在多個頁面之間被引用,需要進行觸發(fā)級連更新。當大量并發(fā)時,更新靜態(tài)頁面會發(fā)生LOCK,導(dǎo)致頁面訪問超時。

  3、基于squid for windows下的反向代理

  為了佐證本方案是經(jīng)過實踐考驗的,并且是通用的行業(yè)方案,以下是一些大規(guī)模網(wǎng)站實際應(yīng)用

  --網(wǎng)易

  Server nginx
  Date Wed, 10 Mar 2010 02:25:39 GMT
  Content-Type text/html; charset=GBK
  Last-Modified Wed, 10 Mar 2010 02:24:45 GMT
  Vary Accept-Encoding
  Expires Wed, 10 Mar 2010 02:27:39 GMT
  Cache-Control max-age=120
  Content-Encoding gzip
  Age 49
  X-Cache HIT from cache.163.com
  Via 192.168.51.39.nginx, 1.0 cache.163.com (squid/3.0.STABLE23)
  Connection close

  --騰訊

  Server nginx/0.6.39
  Date Wed, 10 Mar 2010 02:26:48 GMT
  Content-Type text/html; charset=GB2312
  Vary Accept-Encoding, Accept-Encoding
  Expires Wed, 10 Mar 2010 02:41:48 GMT
  Cache-Control max-age=900
  Content-Encoding gzip
  Age 313
  X-Cache HIT from rainny.qq.com
  Via 1.0 rainny.qq.com:80 (squid/2.6.STABLE5)
  Connection close

  ----搜狐

  Date Wed, 10 Mar 2010 02:41:40 GMT
  Server Apache/1.3.39 (Unix) mod_gzip/1.3.26.1a
  Vary Accept-Encoding,X-Up-Calling-Line-id,X-Source-ID,X-Up-Bearer-Type
  Cache-Control max-age=70
  Expires Wed, 10 Mar 2010 02:42:50 GMT
  Last-Modified Wed, 10 Mar 2010 02:41:39 GMT
  Content-Type text/html
  Age 9
  X-Cache HIT from 17376722.22226606.29245568.sohu.com
  Via 1.0 17376722.22226606.29245568.sohu.com:80 (squid)
  Connection close

  4、其它 ?

  二、SQUID簡介

  SQUID簡單說來是基于UNIX下開發(fā)的為WEB應(yīng)用加速的一個開源軟件。SQUID已經(jīng)普遍在基于nix系統(tǒng)下的WEB應(yīng)用中使用,例如:新浪、網(wǎng)易都使用該軟件,其中SQUID FORWINDOWS是在WINDOWS下使用。SQUID通過哈希算法在磁盤上建立目錄,將第一次請求的信息,存在指定的目錄下,供其下次存取,此外SQUID也會將請求的頁面信息緩存在內(nèi)存中,當客戶端訪問某一頁面時,如果內(nèi)存中存在,則直接命中CACHE;如果內(nèi)存中不存在,則到CACHE目錄下獲取,否則到后端的WEB SERVER獲取。

  SQUID 特點:

  1、SQUID沿繼了nix下配置的風格,可能用慣了WINDOWS的用戶初次使用會有些不適。

  2、SQUID包括了一系列的配置策略,認證、訪問控制、緩存設(shè)置、URL抓取、日志管理、磁盤管理、群集等。

  3、SQUID可以通過refresh_pattern策略設(shè)置請求的URL可緩存的內(nèi)容,失效時間(詳見文檔)。

  4、緩存策略說明

  SQUID使用了LM算法,LM就是頁面Header里時間(Date)和Last-Modified時間的差。Date一般是Squid從后面取頁面的時間,Last-Modified 一般是頁面生成時間。refresh_pattern 的語法是:refresh_pattern [-i]regexp min percent max [options],min,max的單位是分鐘,percent就是百分比。refresh_pattern 的算法如下:(當前時間定義為CURRENT_DATE)

  1) If ((CURRENT_DATE-DATE(就是LM里定義的時間)) < min),cache是新鮮的

  2) else if ((CURRENT_DATE-DATE) < (min + (max-min)*percent),cache是新鮮的

  3) else cache是過期的,cache過期就需要從后面server取新鮮內(nèi)容。

  常用的幾個參數(shù)的意思

  override-expire

  該選項導(dǎo)致squid在檢查Expires頭部之前,先檢查min值。這樣,一個非零的min時間讓squid返回一個未確認的cache命中,即使該響應(yīng)準備過期。

  override-lastmod

  改選項導(dǎo)致squid在檢查LM-factor百分比之前先檢查min值。

  reload-into-ims

  該選項讓squid在確認請求里,以no-cache指令傳送一個請求。換句話說,squid在轉(zhuǎn)發(fā)請求之前,對該請求增加一個If-Modified-Since頭部。注意這點僅僅在目標有Last-Modified時間戳時才能工作。外面進來的請求保留no-cache指令,以便它到達原始服務(wù)器

  一般情況可以使用reload-into-ims。它其實是強行控制對象的超時時間,這違反了http協(xié)議的精神,但是在帶寬較窄的場合,可以提高明顯系統(tǒng)相應(yīng)時間。關(guān)于SQUID FORWINDOWS介紹已經(jīng)很多,本文就不在贅述,詳見SQUID權(quán)威手冊這本書。在使用SQUID之前,首先要規(guī)劃或確定你現(xiàn)有布署環(huán)境,如果你是Single Web Server 建議你在Web Server前增加一臺機器做為SQUID服務(wù)器

  三、SQUID FOR WINDOWS配置

  本文中SQUID放在172.20.65.201的機器上,應(yīng)用WEB ServerIP為172.20.65.203,其中SQUID在201上的80端口偵聽,測試客戶端機器為172.20.65.231,在squid.conf中#代表注釋,所以開啟某項設(shè)置,需去掉前面的#。TAG標簽代表每一功能項的設(shè)置。

  1、下載

  下載SQUID FOR WINDOWS(文章所用的版本是Squid 2.7.STABLE6,各個版本的配置可能略有不同,大家請注意)。

  2、安裝

  將SQUID解壓到c:/squid(當然也可解壓在其它盤符下)

  3、建立磁盤緩存和日志目錄

  默認情況是在安裝磁盤下建立,為確保性能大幅度提升,建立選擇磁盤空間容量較大的盤符,如:建立d:/squid/var目錄,在var目錄下建立logs和cache目錄,其中l(wèi)ogs目錄用 于存放日志,cache目錄用于存放硬盤緩存數(shù)據(jù)。

  4、建立緩存目操作權(quán)限

  為了使抓取的數(shù)據(jù),能夠存放在緩存目錄下,建立系統(tǒng)賬戶如squidApp,將其屬于普通用戶組應(yīng)可,將d:/squid授予該用戶讀寫權(quán)限即可。

  5、文件更改

  c:/squid/etc是SQUID的配置信息的存放處,為確保安全,在你修改配置文件前,請將其備份,然后將squid.conf.default修改為squid.conf,mime.conf.default修改為 mime.conf,cachemgr.conf.default 修改為cachemgr.conf。

  6、配置SQUID

  針對于SQUID來講大部分配都在squid.conf中,本文中所使用環(huán)境如下:

  開啟如下訪問控制

  acl all src all
  acl manager proto cache_object
  acl localhost src 127.0.0.1/32
  acl to_localhost dst 127.0.0.0/8
  acl localNET src 172.16.65.231/255.255.0.0 指定本地網(wǎng)絡(luò)及掩碼

  開啟訪問端口

  acl SSL_ports port 443
  acl Safe_ports port 80 # http
  acl Safe_ports port 21 # ftp
  acl Safe_ports port 443 # https
  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
  acl CONNECT method CONNECT

  開啟訪問控制,請一定要注意順序

  http_access allow manager localhost
  http_access deny manager
  http_access deny !Safe_ports
  http_access deny CONNECT !SSL_ports
  http_access allow all
  http_access allow localNET
  http_access deny all

  指定SQUID在80端口偵聽, vhost 指定使用加速模式。

  http_port 80 vhost

  203后臺WEB SERVER, parent指父節(jié)點, 80 指后臺網(wǎng)站的端口, 0 ICP 服務(wù)端口,no-query originserver 獲取緩存時的選項。

  cache_peer 172.20.65.203 parent 80 0 no-query originserver

  緩存設(shè)置

  maximum_object_size_in_memory 1024 KB
  cache_dir ufs d:/squid/var/cache 1024 16 256 注意路徑
  maximum_object_size 4096 KB
  cache_swap_low 90
  cache_swap_high 95

  日志設(shè)置

  access_log d:/squid/var/logs/access.log squid 訪問日志
  cache_log d:/squid/var/logs/cache.log
  cache_store_log d:/squid/var/logs/store.log
  emulate_httpd_log on

  控制頁面緩存內(nèi)容

  refresh_pattern ^ftp: 1440 20% 10080
  refresh_pattern ^gopher: 1440 0% 1440
  refresh_pattern -i (/cgi-bin/|/?) 0 0% 0
  refresh_pattern . 0 20% 4320
  refresh_pattern -i /.css$ 20 50% 120 reload-into-ims
  refresh_pattern -i /.xml$ 20 50% 120 reload-into-ims
  refresh_pattern -i /.html$ 20 90% 120 reload-into-ims
  refresh_pattern -i /.jpg$ 20 90% 120 reload-into-ims
  refresh_pattern -i /.png$ 20 90% 120 reload-into-ims
  refresh_pattern -i /.gif$ 20 90% 120 ignore-reload
  refresh_pattern -i /.js$ 20 90% 120 reload-into-ims
  refresh_pattern -i /.htm$ 20 90% 120 reload-into-ims

  設(shè)置郵箱

  cache_mgr webmaster_breeze

  設(shè)置本地主機文件

  hosts_file c:/windows/system32/drivers/etc/hosts

  7、安裝服務(wù)

  將squid安裝為服務(wù),命令格式:squid -i [-f configfile] [-n servicename],如c:/squid/sbin/squid -i -n Squid_Proxy

  8、初始化緩存目錄

  c:/squid/sbin/squid -z

  9、啟動Squid_Proxy服務(wù)

  運行services.msc打開服務(wù)窗口,選擇Squid_Proxy服務(wù) ,如果啟動過程出錯90%是配置文件出現(xiàn)問題。

  10、squid命令

  squid -k reconfigure //啟用新的配置文件
  squid -k rotate //截斷日志
  squid -k shutdown //stop squid
  squid -dx //當服務(wù)不能啟動時,進行調(diào)試

  四、SQUID測試

  找一臺機器進行測試,并查看access.log日志,如果出現(xiàn) TCP_DENY的信息,多為配置不正確。如出現(xiàn)如下信息TCP_MEM_HIT/200 表示,SQUID已經(jīng)起作用,該請求是從 SQUID運行機器的內(nèi)存中響應(yīng)的。

  五、性能

  用LR跑了一下,1000個并發(fā),內(nèi)存命中率在100%。

NET技術(shù)實戰(zhàn)ASP.NET大規(guī)模網(wǎng)站架構(gòu):Web加速器,轉(zhuǎn)載需保留來源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 甜宠溺H宝贝嗯撞PLAY啊 | 97色在线视频 | 六六影院午夜伦理 | xxxx美国老师1819 | 91avcom| 东北足疗店妓女在线观看 | 猫咪最新破解版下载 | 十大禁止安装的黄台有风险 | 夜色私人影院永久入口 | 日本xxx在线观看免费播放 | 日本美国群交P片内射捆绑 日本毛片久久国产精品 | 手机在线播放成人亚洲影院电影 | 欧美日韩另类在线观看视频 | 99久久精品久久久 | 男人边吃奶边挵进去呻吟漫画 | 国产超碰AV人人做人人爽 | 日本阿v片在线播放免费 | 中文字幕专区高清在线观看 | 超碰97免费人妻 | 日日干夜夜爽 | 最近中文字幕MV免费看 | 啊灬啊别停灬用力啊老师 | 国产中文在线 | 亚洲黄色成人 | 国内国外精品影片无人区 | 久久青草费线频观看国产 | 国产亚洲精品久久久久久久软件 | 18禁无遮挡羞羞污污污污免费 | 竹菊精品久久久久久久99蜜桃 | 日韩 亚洲 欧美 中文 高清 | 久久性综合亚洲精品电影网 | 久久免费特黄毛片 | 超污视频带污疼免费视频 | 竹菊精品久久久久久久99蜜桃 | 久久re这里视频只有精品首页 | 无码国产成人777爽死 | 青青草原社区 | 99日影院在线播放 | 久久综合中文字幕佐佐木希 | 狠狠色狠狠色狠狠五月ady | 日本一在线中文字幕 |