最近幾天,一直在學習nginx在windows平臺下的使用,爲了尋找幾種大量圖片分佈式存儲並且有相對簡單的存儲方案 nginx是一種,還找到一種MongoDB GridFS 這兩種方案我仍是比較中意的,通過今天的奮鬥,終於將nginx作圖片分佈式存儲這個方案的搭建環境創建起來了,GridFS在後續的學習中我也會記錄下搭建過程,敬請期待吧。html
廢話少說,下面就來講一下Windows+Nginx+IIS 如何創建分佈式存儲結構。nginx
1. 結構總覽windows
邏輯結構:服務器
圖1分佈式
如圖,這是理想的架設,我此次模擬的結構邏輯上是這樣本身的,實際上我本身沒這麼多的計算機,我只能利用虛擬機虛擬出一臺windows 2003系統學習
下圖是我本身實際架設的結構:測試
圖2網站
我來詳細說明一下:url
須要的資源:spa
A. 一個測試網站,很簡單的,有一個上傳圖片,以及瀏覽圖片就行了,一個頁面足以
B. Nginx代理服務器,我這裏將Nginx代理服務器也用來存儲圖片,因此也算是圖片服務器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 Nginx代理服務器也便是我本身的筆記本命名爲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