動態發布站點的併發訪問公升級簡易方案

2021-09-30 02:09:12 字數 915 閱讀 7247

問題:

asp/php等動態建站,往往出現訪問量較大後出現**訪問故障問題,問題在哪呢?

通常**有新聞欄目,假設乙個**新聞欄目建立在/news/目錄下 ,通常都有乙個顯示某條紀錄的item.asp?id=1234,使用者訪問某個連線時候,往往呼叫這個動態指令碼檔案,進行開啟資料庫連線、查詢紀錄。。。等一系列動作。併發10個人沒問題,100個、1000個問題就來了,導致伺服器壓力增大。

但實際上,由於id為1234文章在你發布的時候,內容已經確定,所以基本上a使用者訪問跟b使用者訪問時候做的是同乙個動作,內容也是一樣,但是卻有n次資料庫開啟讀取動作。一般情況下,資料庫操作屬於高消耗系統資源的操作。

具體方案:

對類似 /item.asp?id=1234 這樣的asp程式進行以下修改:

1、拷貝乙份這樣的檔案,假設名為item_bak.asp

2、將content.asp**首處做以下修改:

id=request("id")

txtfile="item_" + cstr(id)+".htm"

if fileexist(txtfile) then

else

genhtml(txtfile,"item_bak.asp?id="+cstr(id))

end if

response.redirect txtfile

response.end

其中函式fileexist為判斷 txtfile檔案是否存在於伺服器上,函式genhtml為 利用xmlhttp伺服器端元件將讀取item_bak.asp?id=1234的檔案的html內容後寫在伺服器上的當前目錄。

這樣,每一篇文章就會僅被讀取資料庫一次,然後之後所有的訪問都被定向到靜態html檔案,緩解伺服器壓力。

總結:唯一的不足是會增加硬碟空間需求。

但是基本上不會造成連線混亂,嚴守原來布局。

動態發布站點的併發訪問公升級簡易方案

問題 asp php等動態建站,往往出現訪問量較大後出現 訪問故障問題,問題在哪呢?通常 有新聞欄目,假設乙個 新聞欄目建立在 news 目錄下 通常都有乙個顯示某條紀錄的item.asp?id 1234,使用者訪問某個連線時候,往往呼叫這個動態指令碼檔案,進行開啟資料庫連線 查詢紀錄。等一系列動作...

一種簡易站點訪問流控策略的設計

1 站點對請求流量要求單個ip每秒只能進行m次請求,否則會丟出http 錯誤碼,2 站點上有n個url需要不定時訪問,且對於每個url x,其重新整理延時為li,該值在程式生命週期內為變數,要求設計一種訪問延時策略,提高m次請求的利用率 顯然,當n m小於所有li時,那麼每乙個請求延時只要滿足li,...

大中型Web站點解決高併發訪問的優化方案

一 網路架構的優化 傳統網路結構的使用者的請求流程 dns解析流程 1 使用者在瀏覽器輸入要訪問的 的網域名稱,如果作業系統檢查到本地hosts檔案中快取著這個網域名稱的對映關係,則直接呼叫,完成網域名稱解析。2 如果hosts檔案中沒有,則瀏覽器向本地dns請求解析,如果快取著對映關係,則返回結果...