Home | 簡體中文 | 繁體中文 | 雜文 | 打賞(Donations) | ITEYE 博客 | OSChina 博客 | Facebook | Linkedin | 知乎專欄 | Search | Email

1.3. 伺服器部署與網絡拓撲

所謂大型網站主要的特點是訪問量大,既海量訪問,對頻寬要求大,而在中國的網絡環境比較複雜,單單靠一家也難保訪問的快速、穩定,我們可能選擇多家網絡運營商,才能得到保障。

我們不得不把伺服器分散部署到各地

1.3.1. 小型網站

一個IP,多台伺服器流水綫方式解決方案。

這種方案必須使用帶有雙網卡的伺服器,建議選擇千兆網卡,web伺服器與database連接建議採用交叉綫互聯,不要通過Hub,Switch連接。

當web和database在同一台伺服器是建議採用 UNIX SOCK 來連結資料庫,以代替TCP/IP Socket。

以上圖中的第三套方案為例,當用戶訪問網站時,通過電信交換機連接到cache伺服器,有兩種情況。第一種是靜態html檔案或圖片,將判斷是否被緩存,如果緩存直接反饋給用戶否則連結web伺服器。第二種動態腳本,將處理立即送給web伺服器。如果動態腳本有請求資料庫操作,將連接database伺服器。

這種方式適合中小型企業,非互聯網運營商,僅僅是用一個IP實現。

兩個IP,多台伺服器解決方案。

建議你吧圖片,縮圖單獨使用一台伺服器實現。

多個IP,多台伺服器解決方案。

這種方案要注意伺服器全部暴露在WAN上,一定要謹慎設置iptables規則。

1.3.2. 集群網站

下面是負載均衡的例子

過程 1.1. 過程訪問演示

  1. 訪問用戶 www.example.com 網站

    用戶輸入網址: www.example.com回車

  2. dns

    域名伺服器將www.example.com解析到load balancing負載請均衡調度伺服器。

  3. load balancing

    負載均衡器根據調度算法分配到某個squid節點上

  4. squid

    靜態規則:判段是否是緩存,如果已經緩存從cache中直接取出內容,否則請求web伺服器

    動態規則:直接請求web伺服器

    請求web伺服器是將再次由load balancing分配web節點

  5. web

    web server 處理動態腳本,連接資料庫查詢。連接資料庫是仍然需要由load balancing分配database節點

  6. database

    database cluster

1.3.3. 關於伺服器遠程管理

將每一台伺服器暴露在廣域網上不是一個好主意,我的經驗是,目前伺服器基本都是雙網卡。

eth0: 用於對外訪問,如web伺服器僅僅開放80連接埠,其他連接埠不允許在廣域網上直接訪問。

eth1: 對內有一個私有區域網路,開放SSH的22連接埠。22連接埠僅僅能通過私有區域網路訪問,不能通過廣域網訪問。

在機房放置一台專門的管理伺服器並安裝有VPN服務,當遠程管理伺服器是通過VPN連接到這台伺服器,登錄到這台伺服器上,然後在通過SSH登錄到私有LAN上的其他伺服器進行遠程管理。

下面是VPN解決方案圖