自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

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

開發(fā) 后端
大規(guī)模網(wǎng)站瓶頸之一就是性能問(wèn)題,如何讓你的網(wǎng)站飛速運(yùn)轉(zhuǎn)起來(lái),一直是架構(gòu)師和開發(fā)人員苦于思考的問(wèn)題,文章僅針對(duì)基于ASP.NET開發(fā)的網(wǎng)站交互性非實(shí)時(shí)部分進(jìn)行討論,實(shí)時(shí)交互部分解決方案將在后續(xù)部分予以闡述。

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

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

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

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

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

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

優(yōu)點(diǎn):實(shí)現(xiàn)比較簡(jiǎn)單

缺點(diǎn):粒度太粗,對(duì)IIS、.NET Framework依賴太強(qiáng),策略還不太完善,跨機(jī)器、集群訪問(wèn)方面存在瓶頸。

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

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

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

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

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

為了佐證本方案是經(jīng)過(guò)實(shí)踐考驗(yàn)的,并且是通用的行業(yè)方案,以下是一些大規(guī)模網(wǎng)站實(shí)際應(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、其它 #p#

二、SQUID簡(jiǎn)介

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

SQUID 特點(diǎn):

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

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

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

4、緩存策略說(shuō)明

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

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

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

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

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

override-expire

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

override-lastmod

改選項(xiàng)導(dǎo)致squid在檢查L(zhǎng)M-factor百分比之前先檢查min值。

reload-into-ims

該選項(xiàng)讓squid在確認(rèn)請(qǐng)求里,以no-cache指令傳送一個(gè)請(qǐng)求。換句話說(shuō),squid在轉(zhuǎn)發(fā)請(qǐng)求之前,對(duì)該請(qǐng)求增加一個(gè)If-Modified- Since頭部。注意這點(diǎn)僅僅在目標(biāo)有Last-Modified時(shí)間戳?xí)r才能工作。外面進(jìn)來(lái)的請(qǐng)求保留no-cache指令,以便它到達(dá)原始服務(wù)器。

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

三、SQUID FOR WINDOWS配置

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

1、下載

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

2、安裝

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

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

默認(rèn)情況是在安裝磁盤下建立,為確保性能大幅度提升,建立選擇磁盤空間容量較大的盤符,如:建立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的配置信息的存放處,為確保安全,在你修改配置文件前,請(qǐng)將其備份,然后將squid.conf.default修改為squid.conf,mime.conf.default修改為 mime.conf ,cachemgr.conf.default 修改為cachemgr.conf。

6、配置SQUID

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

開啟如下訪問(wè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ò)及掩碼

開啟訪問(wèn)端口

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

開啟訪問(wèn)控制,請(qǐng)一定要注意順序

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端口偵聽(tīng), vhost 指定使用加速模式。

http_port 80 vhost

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

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 訪問(wèn)日志
cache_log d:/squid/var/logs/cache.log
cache_store_log d:/squid/var/logs/store.log
emulate_httpd_log on

控制頁(yè)面緩存內(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è)置本地主機(jī)文件

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、啟動(dòng)Squid_Proxy服務(wù)

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

10、squid命令

squid -k reconfigure //啟用新的配置文件
squid -k rotate //截?cái)嗳罩?br /> squid -k shutdown //stop squid
squid -dx //當(dāng)服務(wù)不能啟動(dòng)時(shí),進(jìn)行調(diào)試

四、SQUID測(cè)試

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

五、性能

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

【編輯推薦】

  1. 添加設(shè)置ASP.NET Web時(shí)出現(xiàn)問(wèn)題
  2. 詳細(xì)說(shuō)明ASP.NET 2.0功能支持
  3. 強(qiáng)化部署ASP.Net 2.0配置應(yīng)用程序
  4. 微軟PDC2009直擊:改進(jìn)ASP.NET 4運(yùn)行時(shí)
  5. 詳解ASP.NET MVC 2自定義驗(yàn)證
責(zé)任編輯:王曉東 來(lái)源: it168
相關(guān)推薦

2009-07-29 09:14:36

ASP.NET網(wǎng)站

2009-03-20 09:49:00

負(fù)載均衡CDN網(wǎng)站架構(gòu)

2009-08-03 17:35:07

ASP.NET WebASP.NET編程工具

2009-07-29 17:16:47

2009-07-28 15:53:43

ASP.NET Web

2009-07-28 10:43:23

Web服務(wù)器ASP.NET

2009-07-30 15:18:11

2009-08-05 17:58:34

實(shí)現(xiàn)ASP.NET網(wǎng)站

2024-09-09 07:37:51

AspJWT權(quán)限

2009-07-28 16:29:06

XML Web服務(wù)ASP.NET構(gòu)造

2009-07-28 17:34:28

ASP.NET XML

2009-07-23 15:18:30

創(chuàng)建XML Web服務(wù)ASP.NET

2009-07-24 16:05:05

調(diào)用Web ServiASP.NET

2009-07-29 09:38:06

Web開發(fā)ASP.NET

2009-07-27 17:20:05

2009-08-03 14:22:33

什么是ASP.NET

2009-07-28 17:17:19

ASP.NET概述

2009-07-22 17:45:35

ASP.NET教程

2009-07-20 15:57:42

ASP.NET安全架構(gòu)

2024-09-10 08:13:16

Asp項(xiàng)目輕量級(jí)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)