來紀錄一下好了,其實這兩年前,我自己就試過了,當時在弄 web 系統 Load Balancing,因為找不到更好的方法,所以使用 Round Robin DNS Load Balancing 技術來達到這功能,可是當然這不是很準確的做到 load balance,只是能解決暫時性的問題,真正要做到 Load Balancing 可能要靠硬體的技術了。 我自己是在 FreeBSD 系統上面實做的,當然弄 Load Balancing 一定要在網卡上面綁定多重ip,Linux 作法跟 FreeBSD 不大相同
# # Linux 作法 # ifconfig eth0:0 inet xxx.xxx.xxx.xx(1~9) netmask 255.255.255.0 broadcast xxx.xxx.xxx.255
# # FreeBSD 作法 # # /etc/rc.conf - add a new IP address to the NIC # 在 rc.conf 加入底下 entry ifconfig_rl0_alias0="192.168.0.57 netmask 0xffffffff" # # 指令 # ifconfig rl0 alias 192.168.0.57 netmask 0xffffffff[Read More]
myimage.jpg實際上是 /webupload/album/user1/myimage.jpg 這個檔案,而/webupload這個目錄並不在www1本機的硬碟裡面, 是在前面提到的共用儲存設備裡面。對於另一台www2來說也是 一模一樣的狀況。 也就是說www1和www2上面都做了兩件事 1. 把/webupload這個目錄掛載到共用儲存設備上的同一個目錄去。 2. 在httpd.conf裡面加上Alias指向設定。 以上這些步驟(其實只有兩個動作)可以解決使用者透過程式上傳 的檔案的同步問題。至於網站維護人員透過ftp更新的檔案要上傳 兩邊的問題,其實也可以透過類似的方式解決,在www1, www2上面 建立一個目錄掛載到共用儲存設備上的某個目錄去,然後在兩台 的httpd.conf裡面把document_root指向到該目錄去即可。 但是那時候客戶並沒有採行我的建議:( 他們的理由是 1. www1,www2的web server都共用一個儲存設備,萬一該共用 儲存設備掛了怎辦?這樣一來雖然有兩台web server,但是 整個網站都會掛點。 2. 我們沒有預算添購這個儲存設備。 第一個問題我覺得其實不是那麼嚴重,因為該儲存設備不會只有 一顆硬碟,必定是至少兩顆做Raid 1或者三顆做Raid 5甚至以上。 透過Raid可以不用太擔心這個問題。 第二個問題,無解。所以最後還是一樣,FTP兩邊丟,程式裡面兩邊存。 ╮(╯_╰)╭ 回到原po的狀況,其實你只要把你那台資料庫server當成前面 提到的共用儲存設備就可以了。