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+nginx+iis+redis+Task.MainForm构建分布式架构 之 (nginx+iis构建服务集群)
本次要分享的是利用windows+nginx+iis+redis+Task.MainForm组建分布式架构,由标题就能看出此内容不是一篇分享文章能说完的,所以我打算分几篇分享文章来讲解,一步一步实现分 ...
- windows本地搭建nginx+php+mysql+redis环境详细步骤
1.mysql的下载和安装 这个可参考我另外一篇文章:http://www.cnblogs.com/myIvan/p/9265645.html 2.php的下载和配置修改 下载地址:https://w ...
- windows的iis做后门,隐藏访问,无日志<转>
windows下的iis5/iis6做后门,隐藏访问,不留访问记录或者不留日志 好不容易攻下一台Windows2000/2003 IIS服务器,你一定会想,怎样才能长期占有这个“肉鸡”呢?聪明的你肯定 ...
- windows的iis做后门,隐藏访问,无日志
windows下的iis5/iis6做后门,隐藏访问,不留访问记录或者不留日志 好不容易攻下一台Windows2000/2003 IIS服务器,你一定会想,怎样才能长期占有这个“肉鸡”呢?聪明的你肯定 ...
- Windows下phpStudy配置独立站点详细步骤
本文讲如何在phpStudy下配置 域名->站点 步骤. 开始之前,我们先添加几个本地域名(host文件),如果有域名映射到主机此步可以跳过,直接看后面的phpStudy配置部分. 首先打开ho ...
- Windows中安装Linux子系统的详细步骤
早就听说Windows中可以安装Linux子系统,体验了一下,感觉还是不错的,下面直接开始安装和配置步骤吧! 开启Windows中的配置 首先开启开发者模式 打开"所有设置"进入& ...
- nginx+iis+redis+Task.MainForm构建分布式架构 之 (redis存储分布式共享的session及共享session运作流程)
本次要分享的是利用windows+nginx+iis+redis+Task.MainForm组建分布式架构,上一篇分享文章制作是在windows上使用的nginx,一般正式发布的时候是在linux来配 ...
- Windows Server 2016 配置 IIS 的详细步骤
Ø 简介 本文主要记录 Windows Server 2016 环境下,安装配置 IIS 的详细步骤.需要说明的是,在选择"功能"或"角色服务"时不建议将所有 ...
- 使用Nginx和Logstash以及kafka来实现网站日志采集的详细步骤和过程
使用Nginx和Logstash以及kafka来实现网站日志采集的详细步骤和过程 先列出来总体启动流程: (1)启动zookeeper集群(hadoop01.hadoop02和hadoop03这3台机 ...
随机推荐
- HMAC结合“挑战/响应”保障数据传输安全
1.流程图: HMAC的一个典型应用是结合“挑战/响应”(Challenge/Response)来保障客户端和服务器传输数据的安全性 . 2.安全性分析: 使用的密钥是双方事先约定的,第三方不可能知道 ...
- <摘录>perl正则表达式中的元字符、转义字符、量词及匹配方式
Linux平台上被广泛使用的正则表达式库PCRE - Perl-compatible regular expressions,从其名字即可知道,PCRE提供的是一套与Perl中相兼容的正则表达式. 元 ...
- java Servlet Filter 拦截Ajax请求,统一处理session超时的问题
后台增加filter,注意不要把druid也屏蔽了 import java.io.IOException; import javax.servlet.Filter; import javax.serv ...
- 如何在form初始化时自动隐藏FOLDER列
方法1:直接设定PROMPT列和数据列ITEM的VISIBLE属性为No 方法2:在WHEN-NEW-FORM-INSTANCE触发器里: l_old_itm := :system.cursor_it ...
- Unity3d-Socket之龙一编年史network.dll分析(1)
今天闲着无聊,看到群里的老大共享了反编译的工具,就下载下来玩下. 说道反编译我个人不太推崇反编译,感觉不道德,毕竟是人家的代码,但是又回想一下,我们拿代码看是抱着学习的态度又有何不可,所谓既是民族的也 ...
- hive如何使用中文查询条件
直接在hql中使用中文会报错:org.apache.hadoop.ipc.RemoteException: java.io.IOException: java.lang.RuntimeExceptio ...
- form表单提交时选择性传值到后台
正常情况下form表单提交会把表单内的内容提交到后台,但是如果有些内容只是作为展示或者是标记而不想传到后台,我们采用如下方法: jsp页面如下,我们不想提交id为userIdMark和pwdMark的 ...
- 【笔记】js原生方法 在元素外部或内部实现添加元素功能(类似jq 的 insert 和 append)
介绍的这个方法是:insetAdjacentHTML() 方法 此方法接收两个参数: 第一个参数必为下列值: beforebegin:在调用的元素外部的前面添加一个目标元素 afterend:在调用元 ...
- JMeter 四:建立高级web测试计划
发送带有Header的请求 参考:http://jmeter.apache.org/usermanual/build-adv-web-test-plan.html#header_manager Jme ...
- 获取当前View
在实际开发中LayoutInflater这个类还是非常有用的,它的作用类似于findViewById().不同点是LayoutInflater是用来找res/layout/下的xml布局文件,并且实例 ...