Windows+Nginx+IIS做图片分布式存储详细步骤

   最近几天,一直在学习nginx在windows平台下的使用,为了寻找几种大量图片分布式存储而且有相对简单的存储方案 nginx是一种,还找到一种MongoDB GridFS 这两种方案我还是比较中意的,经过今天的奋斗,终于将nginx做图片分布式存储这个方案的搭建环境建立起来了,GridFS在后续的学习中我也会记录下搭建过程,敬请期待吧。

    废话少说,下面就来说一下Windows+Nginx+IIS 如何建立分布式存储结构。

1.  结构总览

逻辑结构:

 

图1

如图,这是理想的架设,我这次模拟的结构逻辑上是这样自己的,实际上我自己没这么多的计算机,我只能利用虚拟机虚拟出一台windows 2003系统

下图是我自己实际架设的结构:

 

           图2

 

我来详细说明一下:

   需要的资源:

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

 

Windows+Nginx+IIS做图片分布式存储详细步骤

上一篇:Windows 下 IIS与Apache 共存


下一篇:[转]鼠标和键盘模拟API