1 頁 (共 1 頁)

[教學] 如何減少自架主機流量的方法

發表於 : 2004-08-15 20:20
linux_xp
這個方法,可以有效減少主機流量

應用於自架主機,或是租用有流量限制的虛擬主機

提供給有需要的朋友參考。


流量之瓶頸分析:
--------------------------------------
一般人在家裡自行架設 server,大部分都是使用 ADSL
以最普遍的 2M / 256K 來說\r
其上傳只有 256 Kbps = 32 KB/s

假設傳送純文字資料,每人每秒 1KB/s
這是尚可接受的速度,那麼只能同時服務線上人數 32人\r

但是因為不可能每個線上瀏覽者,每秒都在要求服務
所以理論上可以服務兩倍的人數\r
大約是70人左右,還可以保持瀏覽很順暢\r
人數超過的話,瀏覽者就會覺得有點 LAG了

以上是 2M / 256K 可順暢服務人數的計算,大約70人\r

不過這個假設是有前提的,就是純粹提供文字服務

但是我們會發現,phpBB2頁面的形成
不只是文字而已,它還有圖片!
就是 /templates/ (風格名稱) /images 目錄底下的那些東西

這個目錄的大小,含LOGO圖,可能有 100 KB 左右\r
當然,LOGO圖如果愈精細,容量也就愈大\r

這 100 KB的資料
每次當有人第一次登入的時候,便會向 server 要求上傳\r

可以想像,ADSL 2M/256K ,上傳僅有 32KB/s 的小水管
光是要提供這些圖片上傳,就已經應付不了了,更別提傳送文字了
那麼想要線上人數 70人,還可以順暢瀏覽,簡直就是痴人說夢了


解決方法:
-----------------------------------------------
分離大法

把 「/templates/ (風格名稱) /images」 弄到ISP提供的個人網頁空間

例如:HiNet 的 60 MB個人網頁空間, SO-NET 的 35MB 個人網頁空間....等等之類

這麼一來,phpBB2頁面形成所需要的圖片,將會改由 ISP 提供的空間下載,就不會吃自己主機的流量了

ISP 提供的空間,有一個好處,就是不限流量,沒有廣告,速度超快,且不會亂砍檔


不過,事情沒有這麼簡單,這個點子應該早就很多人有想過了,但是實做上有些困難....

問題在於要怎樣把原先指向 /templates/ (風格名稱) /images 的檔案要求,改指向 ISP 提供的網頁空間

1.利用作業系統本身的捷徑功能,例如:Linx 的 ln 指令,這是沒有作用的,我試過了

2.要把原先指向硬碟的檔案要求,改指向 ISP ,唯一方法是修改 「風格」底下的 *.tpl 檔



如何實做: (建議用 WIN-XP 修改,因為必須用到檔案搜尋)
-------------------------------------------------------------------------
首先,必須了解phpBB2的運作原理

phpBB2的頁面,都有一個「風格」,而這個「風格」就在 /templates/ (風格名稱) 底下

每個人用的風格可能不一樣,所以 (風格名稱),不一定相同

而「風格」裡面有個 /images 目錄,顧名思義就是放圖片的,也就是phpBB2頁面形成時,所看到的那些圖片

現在,要做的就是把 /templates/ (風格名稱) /images 拷貝到 ISP 提供的個人網頁空間

然後修改 /templates/ (風格名稱) 底下所有的 *.tpl ,找出有關圖片的連結,作修改\r


原始位置 (本機電腦相對路徑):/templates/ (風格名稱) /images

修改後的位置: http:// ISP提供的個人網頁 /你的使用者名稱 / images


1.
請先將 /templates/ (風格名稱) /images 上傳到 ISP 提供的個人網頁空間,記下路徑


2.
進入DOS模式 (命令提示字元)
切到 \templates\ (風格名稱) 目錄
指令:ren *.tpl *.txt
將所有 *.tpl檔案,更名成 *.txt ,待會才有辦法搜尋


3.
使用 win-xp 的搜尋功能,選 [進階] 搜尋
搜尋檔案: \templates\ (風格名稱) \ *.txt
文字裡的字或片語:/templates/ (風格名稱)

按下[開始搜尋]


4.
梢待片刻,會發現搜尋出一大堆 *.txt 檔

每個都給它打開,用 [記事本] 的 [編輯] - [取代]

搜尋目標:/templates/ (風格名稱) /images
取代為:http:// ISP提供的個人網頁 /你的使用者名稱 / images

完畢後,記得存檔

5.
全部改完後,請記得再把 *.txt 改回 *.tpl

另外,/templates/ (風格名稱) /images 底下,也會有幾個 *.css 檔

用 [記事本] 打開,同樣的用第4個步驟的 [編輯] - [取代]

改完後,存檔


6.
全部完成後,可以把 /templates/ (風格名稱) /images 底下全部檔案刪除\r

實際瀏覽看看,頁面形成後,是否可以看到圖片

如果圖片都正確,恭喜大功告成了,這樣子就可以節省不少流量囉.... :-D



PS.
這個方法同樣適用於有月租流量限制的虛擬主機

頭像的話,小弟不知道怎麼改\r
因為讀取頭像目錄時,會去查詢目錄內有哪些檔案
但遠端的網頁空間主機,不允許查詢

有大大可以教一下嗎? :roll:

發表於 : 2005-04-09 11:12
Xilinx
謝謝大大分長詳細的說明˙

發表於 : 2005-04-14 22:38
brian1215399
想請問一下那聊天系統可否用類似方法做??這樣就不用佔到頻寬了~

發表於 : 2005-05-11 22:13
sk2k
我想, 如果是用 apache 的話, 可以利用 apache 本身的功能, 來把某些指定的訪問, redirect 到另一個 server...

可以參考這裡...
圖檔

:lol: :lol:

發表於 : 2005-05-11 23:17
Mowd
寫出那麼長的教學,給你拍拍手:)
不過票選的選項兩個都是Yes...Orz...

發表於 : 2005-05-12 03:23
cj_kuo
如果是用 哀哀死 (IIS) 的話, 可以用虛擬目陸的方式處理.

可以不須要動到 phpbb2 的程式碼.

不過, 大家好像都是用 apache 來處理...


Kuo...