標籤:
最近幾天,一直在學習nginx在windows平台下的使用,為了尋找幾種大量圖片分布式儲存而且有相對簡單的儲存方案 nginx是一種,還找到一種MongoDB GridFS 這兩種方案我還是比較中意的,經過今天的奮鬥,終於將nginx做圖片分布式儲存這個方案的搭建環境建立起來了,GridFS在後續的學習中我也會記錄下搭建過程,敬請期待吧。
廢話少說,下面就來說一下Windows+Nginx+IIS 如何建立分布式儲存結構。
1. 結構總覽
邏輯結構:
圖1
,這是理想的架設,我這次類比的結構邏輯上是這樣自己的,實際上我自己沒這麼多的電腦,我只能利用虛擬機器虛擬出一台windows 2003系統
是我自己實際架設的結構:
圖2
我來詳細說明一下:
需要的資源:
A. 一個測試網站,很簡單的,有一個上傳圖片,以及瀏覽圖片就好了,一個頁面足以
B. NginxProxy 伺服器,我這裡將NginxProxy 伺服器也用來儲存圖片,所以也算是圖片伺服器1號
C. 圖片伺服器,用來分擔1號的圖片
D. 第二張圖,是我實際架設的結構,機器不夠,所以我自己的筆記本上會安裝如下配置:
a) 測試網站 www.demo.com
b) Nginx 伺服器代理
c) 圖片伺服器1號
虛擬機器用來做圖片伺服器2號。
實現原理
1. 使用者有2中上傳圖片方式:
a) 第一種Http://img.nginxtest.com/s1/upload.aspx
b) 第二種Http://img.nginxtest.com/s2/upload.aspx
請求發送至 Nginx伺服器後根據 url中的s1,s2會轉寄到不同的2個圖片伺服器
含有/s1/ 的請求發送到1號圖片伺服器,含有/s2/ 的發送到2號伺服器
2. 將來圖片儲存的結構如下
a) 1號圖片服務會將圖片儲存在 /s1/… 目錄下
b) 同理2號伺服器會儲存在 /s2/… 目錄下
c) 我這裡圖片上傳後圖片儲存的URL結構:
i. 1號伺服器上: http://img.nginxtest.com/s1/photo/1234/123456/product/_2013113144712237_s.jpg
ii. 2號伺服器上:http://img.nginxtest.com/s2/photo/1234/123456/product/_2013113145230921_s.jpg
d) 請求
2. 圖片伺服器配置
一步一步來說下配置過程,先來配置2個圖片伺服器,用來接收使用者上傳的圖片並儲存在本地. 這裡規定一下吧,2 NginxProxy 伺服器也即是我自己的筆記本命名為A號機器(IP:192.168.21.1),虛擬機器命名為B號機器(IP:192.168.21.128),用於下面的簡稱
a) A號機器配置圖片伺服器 : 網域名稱為:img.nginxtest.com 連接埠 801
b) A號機器配置圖片伺服器安裝nginx 連接埠使用 80
c) A號機器配置測試網站 網域名稱www.demo.com 連接埠8012
d) 虛擬機器設定圖片伺服器 網域名稱 img.s2.com 連接埠 80
e) 修改 hosts 檔案
f) 配置 nginx 找到nginx.conf 檔案
的紅色框框 實現了nginx 處理url分流, 根據URL中的/S1/ ,/S2/ 來分發請求
Ok~,以上是主要的配置流程,還有一些無法用語言說的,自己語言功底有限啊(暴汗~~)
提供一些參考資料
1. 短小實用的分布式圖片儲存方案 非常感謝這個博主的思路
2. Nginx設定檔說明 這個要看一遍至少,否則新手真心不會配置
http://blog.sina.com.cn/s/blog_75a555e40101fie9.html
Windows+Nginx+IIS做圖片分布式儲存詳細步驟