[www] 網站分流問題

昨天在上台大 ptt 的bbs,逛到php版,發現裏面有人提問到,如何做到分流的問題,其實這個問題很多方式可以解決,以下我擷取一篇 ptt 上面的回文

作者: MrMarcus (請勿忘記密碼) 看板: PHP 標題: Re: [問題] 網站分流問題 時間: Sun Mar 11 00:26:04 2007 ※ 引述《timyau (我討厭Sony)》之銘言: : 我架了一個網站, : 使用了一台轉址主機、 : 兩台 Web Server 進行分流 : 另外還有一台主機當資料庫使用 : 每次使用者輸入轉址主機的位置 : 主機就會自動將使用者於內部導向兩台Web Server的其中一台 : 所以每次網站只要更新,就得同時更新兩台Web Server的網頁 : 這樣一來就有問題了 : 一但只更新其中一台Web Server, : 使用者連到網站來就會有可能看到不一樣的內容 : 因為有時候可能連到有更新的那一台,有時候會連到沒有更新的那一台 : 有嚐試過把檔案都放在第三台資料庫的 SERVER : 而PHP取得資料庫Server的內部IP(例如192.168.1.3) : 來讀取使用到的相同資源檔案 : 但是從外面要讀取圖片的時候卻發生網址上面是 http://192.168…./ : 的情況 : 這樣當然是有問題的啊 Orz : 想請問這樣的架構是否有問題? : 還是有什麼解決方法嗎?謝謝 這問題我以前有遇到過,狀況很類似。不但每次更新要FTP兩次 到兩台伺服器去,而且在程式裡面也有這個問題,變成凡是使用者 上傳檔案的地方,程式接收到檔案後除了把檔案存在自己這台的 硬碟裡面外,還得把該檔案複製到另一台伺服器硬碟的相對應位置去, 否則被帶到另一台機器去的使用者就會找不到那個檔案。 (上面指的使用者不是維護網站的人,是來瀏覽網站的使用者) 我把這個問題提出來給客戶,因為我覺得讓兩台伺服器的檔案內容 保持同步這種工作不應該在網站程式這端來執行,應該在更底層 的地方由伺服器本身自己處理掉,網站程式這層級不需要去知道 現在到底有幾台伺服器在分散負荷。而且還要考慮到日後擴充的問題, 現在是兩台,以後變成三台,程式要改成把收到的上傳檔案複製到 另外兩台去,變成四台,五台呢? 我那時提出的建議是,增加一套獨立的儲存設備,兩台伺服器上面 設定好把某個目錄,例如/webupload,共同mount到該儲存設備去, 程式裡面就把使用者透過程式上傳的檔案儲存到/webupload去。 然後在http server裡面指定某個目錄名稱對應到/webupload。例如 在httpd.conf裡面: Alias /upload /webupload 前面的/upload是web server上使用的目錄名稱,後面的/webupload 是檔案系統上的目錄名。換句話說,使用者在瀏覽www1.mycompany.com 的時候會看到 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當成前面 提到的共用儲存設備就可以了。

[Read More]

[報告] 數位典藏網站報告

  • 由來 說到數位典藏,這是我進來

國史館台灣文獻館 的代表作,剛進來到這個單位,看到一樓檔案閱覽室怎麼會有一部電腦光碟塔,一部電腦接上10台光碟機,原來是要給讀者使用的阿,比如說讀者想要看哪一冊檔案,我們的工作人員就要放光碟片進去,給讀者使用,以目前我們數位典藏的數位話檔案『影像檔』已經快接近1000萬頁了,可是為什麼連的網站都沒有呢,造成數位好的檔案,沒辦法提供上網,造成想看的人要來館內來看,相當不方便,畢竟我們這裡也沒有很方便的交通,所以造成檔案已經數位話了,沒辦法公佈在網路上,有些成果,當然我們也有跟中研院合作,但是又如何呢中研院,不只有這個數位典藏的計劃,他們到處接計劃,所以造成五年計劃已經結束了,然而還沒有一點成果出來,不過目前看來中研院網站已經大致上有一個雛型了 中研院數位典藏網站

[Read More]

[Ubuntu] bash 記憶指令

之前 在 linux連線版有問過大家 如果讓bash 有像 freebsd cshrc的記憶功能 可以按上下鍵 就可以顯示出 以前用過的指令 比如說 我輸入 cat 然後按上 就會出現 cat /etc/bash.bashrc 結果我在 將下面寫入到 /etc/bash.bashrc

bind \
 '"\C-n": history-search-forward' \
 '"\M-OB": history-search-forward' \
 '"\M-[B": history-search-forward' \
 '"\C-p": history-search-backward' \
 '"\M-OA": history-search-backward' \
 '"\M-[A": history-search-backward'
[Read More]

[apache] mod cband 頻寬限制

這個MODULE相當好用,這個可以用來解決架設APACHE頻寬問題 安裝方式: For Linux: 先去下載軟體: mod_cband 目前釋出到 0.9.7.5版 下載到 /tmp/ 資料夾裡面 解壓縮: tar -zxvf mod-cband-0.9.7.5.tgz 如果你有安裝 apsx2的話 請用下面安裝 $ cd mod-cband-0.9.7.5 $ ./configure $ make $ make install 如果沒有安裝 apsx2的話 請用下面安裝 重新編譯 configure –add-module=../mod-cband/mod_cband.c –enable-shared=cband –enable-module=so 設定方法: * 修改httpd.conf 加上2行CBandScoreFlushPeriod 1 CBandRandomPulse On mkdir /var/www/scoreboard chown apache:apache /var/www/scoreboard * 設定 VirtualHost <VirtualHost 1.2.3.4> ServerName www.example.com ServerAdmin webmaster@example.com DocumentRoot /var/www CBandSpeed 1024 10 30 CBandRemoteSpeed 20kb/s 3 3 說明:# 100MB virtualhost bandwidth limit CBandLimit 100M # Maximal 1024kbps speed for this virtualhost # Maximal 10 requests per second for this virtualhost # Maximal 30 open connections for this virtualhost限制該網域總頻寬跟連線數目 CBandSpeed 1024 10 30# Maximal 10kB/s speed, 3 requests/s and 2 open connections for any remote client CBandRemoteSpeed 10kb/s 3 2 4個禮拜清除設定一次# a period of time after which the scoreboard will be cleared (4 weeks) CBandPeriod 4W # define ‘class_1′ CBandClassDst 217. [Read More]

[Apache] 防盜連,抓圖

目前管理 國史館-台灣文獻館,幾台檔案伺服器 裝了 快 1000萬的數位話檔案,如果將來對外開放,將會造成大量被下載 所以我列了下面幾個保護裝置,目前用在館內,我弄了幾個軟體去下載,果然已經被阻擋了 網頁伺服器要支援REWRITE功能

[Read More]

Vim 功能介紹

Vim 功能時在太多了,搜尋取代,切換視窗,多重編輯都可以 1.如果想複製整篇檔案的文字,利用下面指令

ggVGy
2.切割畫面
:sp filename 會橫項切割兩個視窗來開檔案
:vsp filename 是直項切割視窗.

Ctrl+w 2次則會切換到令一個視窗

fllow mode 

:set scb 則會紀錄一邊檔案,記的要把一邊檔案按下page down才可以  這樣相差一頁,才是你想要的
3.去除 ^H ^M
man gcc | col -b > gcc.txt

vi 後 :1,$s/^v^H//g  (^v = ctrl + v, ^H = ctrl+h)

sed -i -e 's/^v^H//g' file
[Read More]
Vim 

Ubuntu Edgy Release KDE 桌面環境

剛剛安裝新的 ubuntu 作業系統 Edgy Release 然後順手安裝了 kde 桌面環境 Ubuntu Desktop KDE 還蠻漂亮的~ 哈哈 宿舍用 gnome 公司用 kde還不賴 2套都可玩看看~

[Linux] 在 windows底下讀寫linux

剛剛在ptt看到的,一連串討論 □ XP 認得 ext2/ext3 磁區嗎 ? 裡面有很多文章 寫的不錯,可以提供出來 問題:

想問一下,我有一個移動式硬碟 60G 所以只能format 成 NTFS or ext2/ext3 而在 Linux 下, 目前支援 NTFS 讀寫可能要另外掛 package… 所以想問,那 Windows XP 是否支援 ext2 / ext3 ext3好像不行, 因為剛剛在 Linux 下 format成 ext3了 並備份了一些東東,到進到了Windows XP底下好像認不得了, 想問,ext2 在 Windows XP 底下,OK嗎… xp認得嗎? 解法如下 作者 wyocbu@kkcity.com.tw (wyocbu),

[Read More]

[Linux] cwRsync [rsync for windows] SSH 加密異地備份

這個我找了好久~因為館內用的系統2003server跟前端系統linux,2個是不同的作業系統 但是我每天都有備份linux資料,我想同步到win的server上面,但是這樣就要在win的機器上面架設rsync伺服器跟rsync client套件 所以我找了很久 終於找到了 cwRsync 有client端 跟server端 跟ssh 加密 open ssh server cwRsync – Rsync for Windows 請點選中間的 Download cwRsync Server 1 下載之後解壓縮,裡面會有一個執行檔,在安裝即可 安裝好之後,去程式集打開 cwrsync server -> 05. Start a Unix BASH Shell 會出現底下畫面 2 執行之後,會出現一個 cmd 視窗但字元卻是 $ 的。

[Read More]

[Linux] 備份策略~shell script

※ 引述《wenshian.bbs@bbs.wretch.cc (小拓)》之銘言: > 備份檔案時是不是只能每天整個資料夾做備份?! > 可以做到哪些檔案有更新就把那些更新加進備份檔裡面嗎? > 我也想來試試 由linux備份到windows有什麼好建議嗎? > 最好可以不需要FTP上傳,不過如果難易度差很多我還是會考慮~= = 你可以先把 win的硬碟 mount到 linux上面 這樣就不需要用ftp上傳了 當然希望硬碟是fat32格式 這樣你就可以每天備份東西到 win的系統上面了~ 你說 “可以做到哪些檔案有更新就把那些更新加進備份檔裡面嗎?” 我覺得不需要這樣 你可以每天備份 用日期當作檔名 ,然後備份7天 只要超過7天的資料在砍掉,這樣你的備份檔 只會有7天以內的資料 #!/bin/bash date=`date +%Y-%m-%d` RETENTION_PERIOD="7" HEADER="Backup data" remove_oldfiles(){ echo "Removing directory $1 files older than $RETENTION_PERIOD days" | wall find $1 -type f -mtime +$2 -exec rm '{}' \; } BACKUPDIR="/home/appleboy /var/www/html" back_www_dir="/backup01/www_data" # # 開始備份 # cd $back_www_dir for TARGET in $BACKUPDIR do echo " [Read More]