【硬體】討論企業架構網站的硬體需求



贊助商連結


頁 : 1 [2] 3 4

coffoce
2005-07-16, 11:55 PM
如果是 Linux 的架構,我會這樣做:

假設 4條ADSL,共有4個IP,10.0.0.1~4

網域名稱為 av.com,註冊在 10.0.0.1

http://home.pchome.com.tw/art/linux2005/images/web/pczone/webmap.gif

除了最源頭的dns主機,兼當第一線防火牆主機及4WAN路由器外
每台主機均自帶防火牆,以提高安全性,防止任何由外或由內的攻擊

資料庫主機不對外連接,只允許內部 IP 進入
資料庫是這類網站的命脈
若要安全性更高,可以鎖MAC網址,只允許www、mial等主機進入
這種情況下,除非先入侵 www、mail主機,才能再入侵資料庫主機
駭客入侵的困難度會較高


named 正解檔:
------------------------------------------------------------------
$TTL 86400
@ IN SOA av.com. root.av.com. (
2005062102 ; Serial
28800 ; Refresh
14400 ; Retry
3600000 ; Expire
86400 ) ; Minimum

@ IN NS dns.av.com
@ IN MX 10 mail.av.com

dns IN A 10.0.0.1
www IN A 10.0.0.2
www IN A 10.0.0.3
mail IN A 10.0.0.4
--------------------------------------------------------------------------

www 最簡單的 load balance
讓 dns 去自動跳號,即可達到 load balance 效果


硬體花費:
假設一台電腦組裝花2萬,5台電腦 + 2台交換器,大約10萬左右

相當於一台 4WAN 路由器的價錢...
或者1~2套 M$ server 授權 + M$SQL 授權....

:)
受教了linux_xp大 :D
不過小弟有一點不大懂得地方,「www 最簡單的 load balance
讓 dns 去自動跳號,即可達到 load balance 效果」
讓 dns 去自動跳號這要怎麼達到阿 :confused: ?

贊助商連結


linux_xp
2005-07-17, 02:20 AM
受教了linux_xp大 :D
不過小弟有一點不大懂得地方,「www 最簡單的 load balance
讓 dns 去自動跳號,即可達到 load balance 效果」
讓 dns 去自動跳號這要怎麼達到阿 :confused: ?

像有些熱門的電話號碼,例如中華電信的 0800-080-128
每秒都有很多人打進去問候他人媽媽,但是每個人打進去都是馬上通
這是如何做到的呢?
那是有一台總機,在做「自動跳號」
表面上,對外只有"一支號碼"
實際上裡面是有好幾支線路,在做轉接

網站的服務也是同樣原理
比方說在沒有dns快取的情況下
去 ping www.google.com,這類的超大型網站
會發現:咦~怎麼每次得到的 IP 都不一樣?
Yes, 這就是「自動跳號」


談到如何「自動跳號」之前
首先要了解一個觀念:網址是如何轉成 IP 的?

在 TCP/IP 協定中,只認 IP ,不認 網址
例如我們打:www.pczone.com.tw
電腦是怎麼知道,www.pczone.com.tw 的 IP?

沒錯,就是靠 DNS
換句話說,DNS 就是 總機!

在網域中,自行架設的 DNS,就是該網域的總機
只要在 DNS 動手腳,就能達到「自動跳號」的效果

在 DNS 「正向解析檔」中
同一台主機名稱,實際上是可以指定A紀錄給多組 IP的
例如:
--------------------------------------------
www IN A 10.0.0.2
www IN A 10.0.0.3
-------------------------------------------

當然,每個 IP 代表的是一台實體電腦

當第一位使用者,來查詢 www 主機在哪,dns 回給他:10.0.0.1
當第二位使用者,來查詢 www 主機,dns 會回給他:10.0.0.2

以此類推,會有一個「輪流性」
如此便能達到「自動跳號」的效果
也就是分流,講專業一點就是「負載平衡」

這在設定上,並沒有什麼高妙之處,就是多設幾組 A紀錄而已
簡單又有效


:)

solong
2005-07-17, 03:11 AM
可否請教 linux_xp 兄嗎,雖然可以可以指定A紀錄給多組 IP,可是在一個時間之內,回應的都是同一個ip,如果是架一個file server,當有使用者來抓檔案時,假設他用flashget,一次抓10個檔案,每個檔案分割5點,這時候會發現都是跑同一個ip,這樣就沒有負載平衡的效果了...

kuku0210
2005-07-17, 03:29 AM
【上傳圖片存放位置】
另外交友網站或其他商業網站如何存放上傳圖片的位置

1.方法一將圖片檔案以二進制方式存放進資料庫當中,圖片檔名則以一般字串方式存入資料庫中以便將來查詢;

2.方法二存放在主機硬碟某各入逕當中,並且將相關檔名存放在資料庫,圖片檔名則以一般字串方式存入資料庫中以便將來查詢;


想請問
1.哪種方式是現在最常見的做法
2.如何加速圖片瀏覽效能??
3.如何將上傳圖片壓縮??
4.若按照4way load balance 架構,
按照方法二的話勢必要將上傳圖片另外獨立存放再一台圖片伺服器當中,如何實現??

kuku0210
2005-07-17, 03:52 AM
http://home.pchome.com.tw/art/linux2005/images/web/pczone/webmap.gif

在 DNS 「正向解析檔」中
同一台主機名稱,實際上是可以指定A紀錄給多組 IP的
例如:
--------------------------------------------
www IN A 10.0.0.2
www IN A 10.0.0.3
-------------------------------------------

當然,每個 IP 代表的是一台實體電腦

當第一位使用者,來查詢 www 主機在哪,dns 回給他:10.0.0.1
當第二位使用者,來查詢 www 主機,dns 會回給他:10.0.0.2

以此類推,會有一個「輪流性」
如此便能達到「自動跳號」的效果
也就是分流,講專業一點就是「負載平衡」

:)

也就是說設定越多組指定ip
須提供越多組web server電腦
,負載平衡的效果也就越好
那麼負載平衡和頻寬申請的數量好像沒有太大關係的樣子??? :confused: :confused:

另外架構圖當中
所提到的dns主機似乎要兼當防火牆、
若要防止最常見的駭客,持續攻擊ip
請問要如何防止呢??

【上傳圖片存放位置】
另外交友網站或其他商業網站如何存放上傳圖片的位置

1.方法一將圖片檔案以二進制方式存放進資料庫當中,圖片檔名則以一般字串方式存入資料庫中以便將來查詢;

2.方法二存放在主機硬碟某各入逕當中,並且將相關檔名存放在資料庫,圖片檔名則以一般字串方式存入資料庫中以便將來查詢;

想請問
1.哪種方式是現在最常見的做法
2.如何加速圖片瀏覽效能??
3.如何將上傳圖片壓縮??
4.若按照4way load balance 架構,
按照方法二的話勢必要將上傳圖片另外獨立存放再一台圖片伺服器當中,如何實現??

linux_xp
2005-07-17, 09:27 AM
可否請教 linux_xp 兄嗎,雖然可以可以指定A紀錄給多組 IP,可是在一個時間之內,回應的都是同一個ip,如果是架一個file server,當有使用者來抓檔案時,假設他用flashget,一次抓10個檔案,每個檔案分割5點,這時候會發現都是跑同一個ip,這樣就沒有負載平衡的效果了...


的確如所言,是這個樣子沒錯... :|||:

所以這一招,只適合用在 web server
有時候 web server 因為跑耗 cpu 資源的動態語言網頁
例如用 cgi 寫的聊天室之類的
有可能會因為機器超出負荷,導致很慢,需做負載平衡

一般來說 ftp 最大的瓶頸在於網路頻寬
CPU資源的耗用程度,反而沒那麼大
做多WAN負載平衡才是比較重要的

當然,我們會去動多WAN的腦筋,讓架構變的很複雜
這主要都是因為台灣專線太貴的原因

2M/512K * 4 條,月租費大約 5,000元以下
而 1M/1M 的專線,月租費在 1萬元左右
T1 專線 = 1.5M/1.5M
E1 專線 = 2M/2M
光纖 = 以M計價,每Mbits 1萬,最高可到 30M
詳細價錢可查各ISP,應該都是破萬的
其中專線的費用,又是光纖的好幾倍

但是像日本,他們100M光纖,每月才也2千多元
這也難怪中華電信被罵到臭頭了,真是太離譜了
平平是網路,奈耶差那麼多........ :eye:

algolee
2005-07-17, 09:36 AM
load balance 在做 inbound balance 時
台灣廠商通常會架 dns server
國外廠商做法則修改封包,兩者不太一樣
有興趣者可以去研究各家場商的資料
至於那種方式比較好,只能說跟你預算也有關係吧

linux_xp
2005-07-17, 09:56 AM
也就是說設定越多組指定ip
須提供越多組web server電腦
,負載平衡的效果也就越好
那麼負載平衡和頻寬申請的數量好像沒有太大關係的樣子??? :confused: :confused:

那張架構簡圖,因為有把 4 WAN 考慮進去的關係
所以 web 分流,只是為了降低 cpu 負載

如果是每台 web 主機,各有自己的獨立專線
一樣用 dns 做負載平衡,就可以看出頻寬分流的效果




另外架構圖當中
所提到的dns主機似乎要兼當防火牆、
若要防止最常見的駭客,持續攻擊ip
請問要如何防止呢??


以 Linux 來說,是用內建的 iptables 防火牆
用指令稿的方式,設定「阻擋規則」
至於怎麼設定,市面上很多這類書籍,照著操作就行了

iptables 是一種很專業的過濾式防火牆機制
其效能,可以媲美一台幾十萬的硬體防火牆
另外由於它內建於Linux,所以是免費的

若是windows 當閘道的話
因為 windows 一般來說內建的都很差,漏洞百出
大概都會選擇另外安裝一套商業防火牆/防毒軟體,比較安全吧
例如:卡巴斯基之類的....

這類議題屬於「資安」的範圍
有興趣可以找找關於資安的網站,會有更詳細的資料




【上傳圖片存放位置】
另外交友網站或其他商業網站如何存放上傳圖片的位置

1.方法一將圖片檔案以二進制方式存放進資料庫當中,圖片檔名則以一般字串方式存入資料庫中以便將來查詢;

2.方法二存放在主機硬碟某各入逕當中,並且將相關檔名存放在資料庫,圖片檔名則以一般字串方式存入資料庫中以便將來查詢;

想請問
1.哪種方式是現在最常見的做法
2.如何加速圖片瀏覽效能??
3.如何將上傳圖片壓縮??
4.若按照4way load balance 架構,
按照方法二的話勢必要將上傳圖片另外獨立存放再一台圖片伺服器當中,如何實現??

1.應該是第二種 (我不確定)
資料庫不宜太大,太大的話,搜尋效能會減低,維護上也會增加困難

2.頻寬問題,三個解決方法
a.砸錢增加頻寬
b.去租一台無限流量的虛擬主機,專門放圖片,用超鏈結導過去
c.或是買 web 快取代理服務,例如:giga 的 webamp 服務
webamp 原理和應用,可參考這裡:
http://www.pczone.com.tw/showthread.php?t=136263&highlight=webamp

花費 a > b > c

3.用網頁動態語言去處理,php,jsp,asp ...等等,這方面是程式設計師要負責的問題,和網管無關

4.放和資料庫主機同一台就可以了,效能會比較好
若要額外分出來,就是加一台主機專放圖片,讓彼此連線即可
例如:NFS 或是"網路芳鄰" samba 的方式。

:)

coffoce
2005-07-17, 10:31 AM
像有些熱門的電話號碼,例如中華電信的 0800-080-128
每秒都有很多人打進去問候他人媽媽,但是每個人打進去都是馬上通
這是如何做到的呢?
那是有一台總機,在做「自動跳號」
表面上,對外只有"一支號碼"
實際上裡面是有好幾支線路,在做轉接

網站的服務也是同樣原理
比方說在沒有dns快取的情況下
去 ping www.google.com,這類的超大型網站
會發現:咦~怎麼每次得到的 IP 都不一樣?
Yes, 這就是「自動跳號」


談到如何「自動跳號」之前
首先要了解一個觀念:網址是如何轉成 IP 的?

在 TCP/IP 協定中,只認 IP ,不認 網址
例如我們打:www.pczone.com.tw
電腦是怎麼知道,www.pczone.com.tw 的 IP?

沒錯,就是靠 DNS
換句話說,DNS 就是 總機!

在網域中,自行架設的 DNS,就是該網域的總機
只要在 DNS 動手腳,就能達到「自動跳號」的效果

在 DNS 「正向解析檔」中
同一台主機名稱,實際上是可以指定A紀錄給多組 IP的
例如:
--------------------------------------------
www IN A 10.0.0.2
www IN A 10.0.0.3
-------------------------------------------

當然,每個 IP 代表的是一台實體電腦

當第一位使用者,來查詢 www 主機在哪,dns 回給他:10.0.0.1
當第二位使用者,來查詢 www 主機,dns 會回給他:10.0.0.2

以此類推,會有一個「輪流性」
如此便能達到「自動跳號」的效果
也就是分流,講專業一點就是「負載平衡」

這在設定上,並沒有什麼高妙之處,就是多設幾組 A紀錄而已
簡單又有效


:)
哈,多謝linux_xp大大 :circle:
不過小弟有各構想,想請教一下大大,覺得可行性如何
一般市面上的動態更新IP軟體(例:DirectUpdate...)
那如果我30秒就更換一次IP,是不是這樣也可達到「負載平衡」
不過我看一下,似乎沒這功能阿 :confused:
謝謝大家的收看 :D

linux_xp
2005-07-17, 10:50 AM
load balance 在做 inbound balance 時
台灣廠商通常會架 dns server
國外廠商做法則修改封包,兩者不太一樣
有興趣者可以去研究各家場商的資料
至於那種方式比較好,只能說跟你預算也有關係吧

如果從 Linux 的角度來看
inbound balance 應該是在網卡「佇列」裡面寫上規則
再用 u32 或 fw 等過濾器去攔截分析封包,歸類到某個類別
以判斷某個封包,該用哪條線來處理
這部份作法,是在原先 QoS 技術中,再做進一步的變化

但是這種處理方法會有一個問題,談論 QoS 的書籍中有提到
比方說:
「線上遊戲」或 MSN 之類需要登入伺服器的連線
當封包 IP 改變的時候
遠端伺服器會判斷已斷線,或不明連線(入侵),而強制踢出

在 TCP/IP 協定的網路連線程式中
兩端要連線前
需經由三段式交握,建立一條管道 socket,稱作線程
管道是依據兩端的 IP 和 進出用的 port 來判斷的

如果忽然跑來一個不明IP的封包,理論上在防火牆的地方就會被丟棄
一般較專業的防火牆
會過濾某IP第一個進來的TCP封包,旗標是否為 NEW
若旗標不是 NEW,代表這不是經由三段式交握建立的
則可以視為入侵封包,原則上都採用直接丟棄


以 FlashGet 來說
它的「續傳」,是以對方伺服器為同一 IP來當依據
若 IP 已經改變,是否還會判斷為同一個任務?
或者程式會不會因此當掉或中斷 ←這比較有可能

其實多WAN的應用,從技術面來看,嚴格講起來是「分流」
而一般說的「合併」,是因為分流後,會有類似「合併」的效果
但事實上,「分流」並不是「合併」,其最主要的差異在 IP 會跳的問題
即使市面上打著合併頻寬名號的機器,想必也不是真正合併吧....

http://home.pchome.com.tw/art/linux2005/images/web/pczone/WAN.gif

:)