Windows Server2012上使用Nginx做文件服务器

由于项目中用到了大量的文件上传和删除,考虑到安全的因素,所以整体的思路是使用FTP从主服务器把文件资源上传到文件服务器上。

FTP上传到服务器的代码如下(简单附加一下,具体的网上很多)

  public static void UploadFile(FileInfo fileInfo, string hostname, string username,
            string password)
        {
            string target;
            string targetDir = DateTime.Now.ToString("yyyy-MM-dd");
            //创建文件目录
            MakeDir(targetDir,hostname,username,password);
            target = Guid.NewGuid().ToString();
            string URL = "FTP://" + hostname + "/" + targetDir + "/" + target;
            FtpWebRequest ftp = GetRequest(URL, username, password);
            ftp.Method = WebRequestMethods.Ftp.UploadFile;

            ftp.UseBinary = true;
            ftp.UsePassive = true;
            ftp.ContentLength = fileInfo.Length;
            const int BufferSize = 2048;
            byte[] content=new byte[BufferSize];
            int dataRead;
            using (FileStream fs=fileInfo.OpenRead())
            {
                try
                {
                    using (Stream rs = ftp.GetRequestStream())
                    {
                        do
                        {
                            dataRead = fs.Read(content, 0, BufferSize);
                            rs.Write(content, 0, dataRead);
                        } while (!(dataRead < BufferSize));
                        rs.Close();
                    }
                }
                catch (Exception)
                {

                    throw;
                }
                finally
                {
                    fs.Close();
                    Console.WriteLine("上传成功");
                }
                ftp = GetRequest(URL, username, password);
                ftp.Method = System.Net.WebRequestMethods.Ftp.Rename; //改名
                ftp.RenameTo =target+ fileInfo.Name.Substring(fileInfo.Name.IndexOf(‘.‘));
                try
                {
                    ftp.GetResponse();
                }
                catch (Exception ex)
                {
                    ftp = GetRequest(URL, username, password);
                    ftp.Method = System.Net.WebRequestMethods.Ftp.DeleteFile; //删除
                    ftp.GetResponse();
                    throw ex;
                }
                finally
                {
                    //fileinfo.Delete();
                }

                // 可以记录一个日志  "上传" + fileinfo.FullName + "上传到" + "FTP://" + hostname + "/" + targetDir + "/" + fileinfo.Name + "成功." );
                ftp = null;
            }
        }

  文件上传到服务器很简单,接下来要通过浏览器的地址显示文件(这里主要是做图片服务器),其实可以建一个网站,然后通过网站的虚拟目录来访问图片,但是个人感觉这肯定不是一种好的解决方案,于是想到了最近比较火的Nginx来做图片代理。

安装Nginx,我在安装的过程中遇到了一个小问题(Windows  找不到文件Nginx...),这个错误是因为位置没有定位正确,我使用的nginx-1.9.0版本,我只是定位到安装文件的上级目录,所以出现了这个错误,如果你出现了类似的错误,最简单粗暴的方式就是找到nginx安装程序,地址栏的地址直接粘出来就行。

另一个问题就是80端口被占用的情况,当我们配置完IIS后,默认端口被IIS的默认网站占用,这时候,你只需把IIS的默认网站端口修改一下即可。

安装成功后任务管理器中会有二个进程

接下来在地址栏中输入loaclhost,你就会发现会出现

Welcome to nginx!

Nginx安装成功后,修改nginx.conf文件。

 location / {
            root   html;
            index  index.html index.htm;
        }
location /Image{
       #当访问Image 文件夹的时候指定映射到真正的物理地址
	alias J:\FTPFinCloud;
        #默认的图片
	index default.png;
	}
#缓存图片
location ~.*.(gif|jpg|jpeg|png|bmp|swf)${
	expires 10d;
}

  然后执行nginx-t,成功后接着执行nginx -s reload.这时候就可以访问图片了。

由于我使用的本地的所以我的地址为http://192.168.1.218/Image/2015-05-17/2015-05-17.jpg,

如果要发布到远程服务器上,需要绑定域名时怎么办。这时候只需在server内部配置一下即可

server
{
  listen 8080;

  server_name your_server_ip;

  location /
  {
    root /;

  }

access_log /usr/local/webserver/nginx/logs/nginx_access.log;

}
}

  改一下 you_server_ip即可。

时间: 2024-10-13 12:44:11

Windows Server2012上使用Nginx做文件服务器的相关文章

在Linux和Windows系统上安装Nginx服务器的教程

在Linux和Windows系统上安装Nginx服务器的教程 ?1.在CentOS系统上安装Nginx 在 CentOS6 版本的 EPEL 源中,已经加入了 nginx 的 rpm 包,不过此 RPM 包版本较低.如果需要更新版本,可以使用官方制作的 rpm 包,或者使用源码包编译安装. 还可以使用一些二次开发功能增强的 nginx 版本,例如淘宝的 Tengine 和 OpenResty 都是不错的选择.1.1 常用编译参数 ??? --prefix=PATH:指定 nginx 的安装目录?

安装SQL Server 2012过程中出现“启用windows功能NetFx3时出错”(错误原因、详细分析及解决方法)以及在Windows Server2012上安装.NET Framework 3.5的详细分析及安装过程

       问题:在服务器(操作系统为Windows server 2012)上安装SQL Server 2012的过程中,安装停留在下图所示的界面上,显示”正在启用操作系统功能NetFx3”随后出现提示框,告知启用windows功能NetFx3时出错. 分析:NetFx3指的是.NET Framework 3.5,SQL Server 2012数据库系统的运行需要依靠.NET Framework 3.5,但是Windows Server2012默认情况下是并没有安装.NET Framewor

在Windows Server2012上搭建SharePoint2013开发环境

1,选择中文 2,选择Datacenter带有GUI的服务器 3,之后下一步,下一步,等待系统安装完成 5,使用命令行的方式安装.NET FrameWork3.5(在服务器管理器的功能中添加会报错),安装过程中保证计算机可以联网 dism.exe /online /enable-feature /all /featurename:NetFX3 /Source:e:source/ssxs 4,系统安装完成后,最好下载一个激活工具,将系统激活 二,安装域,Server2012上安装域的方式不同于Se

【技术宅拯救世界】在Windows Server2012上利用OpenVPN搭建自己的VPN服务器

写在前面的话:前段时间利用VPN免流特别火,我本来打算买一个,但后来发现其实都是用的OpenVPN搭建的,正好我手上有一个腾讯的云服务器,我一想不如就自己搭建一个吧,省点钱,结果就这样浪费了两天的时间,最大的问题在于网上关于用windows server搭建的教程异常的少,大部分都是cent os并且是脚本搭建的,我看了好多,看得我一头雾水...总算在我折腾服务器两天之后建好了属于自己的第一个VPN服务器,但是免流那块,四川联通失败,浪费了我两天的时间,但是为了避免以后搭建再次搭建VPN时发生问

在Windows Server2012上安装SQLServer2012图文教程

本文讲述了如何在Windows Server 2012上安装部署SQL Server2012的方法. 系统环境:windows server 2012,如下图: 注意:在Windows server 2012上部署SQL server 2012之前要先安装.netframework 3.5,否则安装过程中会报如下的错误: 在服务器管理器中添加角色功能,在功能区勾选.net framework 3.5功能,如下图所示: 选择添加角色功能向导,在路径中输入SXS文件夹的位置,如下图所示: 默认进行后

windows平台下利用Nginx做负载均衡

1.下载nginx(http://nginx.org/en/download.html)安装包,解压,并使用cmd命令转到nginx.exe所在的目录 2.执行cmd命令start nginx启动nginx服务 3.在iis上部署3个站点(数量任意),ip地址分别为: 192.168.199.104:8081192.168.199.104:8082192.168.199.104:8083 4.配置nginx.conf #服务器的集群 upstream netitcast.com { #服务器集群

Windows Server2012 R2部署网络文件系统

网络文件系统预览 在windows server2012 R2与windows server2012的网络文件系统服务与角色功能包含文件与存储服务器角色.网络文件系统提供了基于windows与非windows系统的企业级的文件共享解决方案. 功能描述 使用NFS协议,可以在运行windows与非windows操作系统的文件传输文件. Windows Server 2012,NFS包含两个组件,NFS服务端与NFS客户端.NFS服务端使能运行windows Server2012的电脑作为非wind

通过本地的SQL Manage sutudio管理windows azure上的SQL Server

通过SQL Manage sutudio管理windows azure上的SQL Server 说到windows azure上的SQL创建,我们在上一篇文章上有介绍了,那今天主要介绍什么呢,我们发现在windows azure上创建的sql数据库下没有SQL Server代理选项功能.我相信大家都用过SQL Server代理相关的功能,具体功能就不用多说了.拿我来说,因为我们有个服务的数据是写入到SQL Server上的,我们在本地通过计划人物实现对数据保留60天,然后通过web方式查询,这样

在Linux上使用Nginx为Solr集群做负载均衡

在Linux上使用Nginx为Solr集群做负载均衡 在Linux上搭建solr集群时需要用到负载均衡,但测试环境下没有F5 Big-IP负载均衡交换机可以用,于是先后试了weblogic的proxyserver,和Apache,效果均很差,两台服务器做了负载均衡之后并发响应速度还没单台不做负载均衡的速度快.最后使用nginx,效果很不错,下面将在Linux上安装步骤记述一下. 1        安装准备 nginx软件版本:nginx 1.2.5 安装包:rhel_nginx-1.2.5-1.