目前正在做一個商城系統,現在做到商品這一模組,根據需求圖片需要單獨存放 > 1台伺服器中,糾結的問題是在商品詳情這個欄位中,詳情介紹是圖文混排,不像是首頁、幻燈、廣告可以單獨存放在一個圖片表中使得在前端取出圖片時可以自由定義訪問圖片的根網域名稱,例如資料庫中存放的圖片src是 images/2013/3/2/uuid.jpg ,前端取出來的路徑是 $config['image_url'][0].$image['src']類似這樣的形式..但是商品詳情裡不同,圖文混排的,除非在商品詳情中用某個標識來代替圖片,然後在取出詳情和圖片地址的時候用真實的圖片src替換,除此之外我想不到有其它辦法..目前接觸過Linux,但是對於一些負載平衡、反向 Proxy的應用不熟悉..總而言之:
有什麼辦法,可以在盡量不修改程式碼的情況下,可以做到圖片輪詢,例如linux中的某些功能例如檔案同步等,還有重要的一點,在上傳圖片時,是直接上傳給web server處理後還是上傳時就直接傳給其它的圖片伺服器?小白對於這點很不解,求大神指點。。
回複內容:
目前正在做一個商城系統,現在做到商品這一模組,根據需求圖片需要單獨存放 > 1台伺服器中,糾結的問題是在商品詳情這個欄位中,詳情介紹是圖文混排,不像是首頁、幻燈、廣告可以單獨存放在一個圖片表中使得在前端取出圖片時可以自由定義訪問圖片的根網域名稱,例如資料庫中存放的圖片src是 images/2013/3/2/uuid.jpg ,前端取出來的路徑是 $config['image_url'][0].$image['src']類似這樣的形式..但是商品詳情裡不同,圖文混排的,除非在商品詳情中用某個標識來代替圖片,然後在取出詳情和圖片地址的時候用真實的圖片src替換,除此之外我想不到有其它辦法..目前接觸過Linux,但是對於一些負載平衡、反向 Proxy的應用不熟悉..總而言之:
有什麼辦法,可以在盡量不修改程式碼的情況下,可以做到圖片輪詢,例如linux中的某些功能例如檔案同步等,還有重要的一點,在上傳圖片時,是直接上傳給web server處理後還是上傳時就直接傳給其它的圖片伺服器?小白對於這點很不解,求大神指點。。
其實樓上已經說得挺明白了,我做一下補充吧。
首先,所謂的圖片伺服器,其實也就是一個用於存放靜態檔案的地方,也就是說,能夠用http 訪問得到的伺服器我們都可以稱之為圖片伺服器。
現在我們只需要把把圖片看做成一種資源存放到一個能用http(apache, nignx)的伺服器即可。
要完成這點,實際上我們只需要把圖片存放到一個目錄,然後,這個目錄與相應的http 伺服器目錄進行映射,或者就直接存在http 服務的相應目錄下。
以上,一個所謂的圖片伺服器的基礎概念就完成了。
於是,我們就能通過http 訪問的直接存取到圖片,接著,我們可以這樣設計我們的api。
就是把圖片的相對路徑存進資料庫
我們可以直接把圖片的相對路徑例如 '/images/shop/xxxx.jpg' 諸如此類路徑存進資料庫,接著,前端擷取api 的時候,我們只需要組合這樣的url 返回給他例如:圖片伺服器的地址是http://host:port,組成一個這樣的http://host:port/images/shop/xxx.jpg.給前端就行。這樣的好處就是把圖片做成一種資源,通過http 訪問,無論你怎麼折騰伺服器,只要改一下host 前端就可以獲得對應的圖片。與是不是圖文混排不混排毫無關係,因為圖片都統一上傳到一個地方進行管理。
同步圖片到其他伺服器,然後DNS輪詢
你管他是圖文混排還是首頁幻燈、廣告。 流程如下: 1. 圖片上傳到圖片伺服器上(通過API,或者webservice 等等方法), 返回圖片儲存路徑。
- 產品後台上傳,得到這個圖片地址。
不需要在乎是不是圖文混排吧。
如果你想可以橫向擴充,並且均衡負載,支援冗餘,圖片伺服器叢集 建議你去看看fastdfs 這個非常贊,適合圖片儲存(或小檔案儲存體)