Windows IIS服务挂载NAS共享文件存储
本文介绍如何结合阿里云NAS的SMB协议支持和ECS Windows虚拟机,使用Windows内置的互联网信息服务(IIS)来提供Web和FTP服务。
阿里云文件存储服务NAS主要面向阿里云ECS 实例、E-HPC、容器服务、弹性Web和BatchCompute 等计算节点提供文件存储服务。通过标准的文件访问协议NFS和SMB,用户无需对现有应用做任何修改,即可在云上使用具备无限容量及性能扩展、单一命名空间、多共享、高可靠和高可用等特性的分布式文件系统。
背景和基本信息
与NFS相比,SMB文件系统访问协议更加适合于Windows客户端,各个版本的Windows对SMB协议的支持更加完善,绝大多数Windows应用程序不经修改即可通过SMB协议访问阿里云文件存储服务。因此,阿里云建议应用集中运行在ECS Windows实例上的用户优先考虑使用SMB文件系统。
阿里云是目前市场上唯一一个全面支持NFS和SMB协议的公共云厂商。阿里云NAS支持SMB 2.0及以上的SMB协议版本,对应支持Windows Vista / Windows Server 2008及以上的各Windows版本,不支持Windows XP / Windows Server 2003及以下的各Windows版本。与SMB 2.0 及以后的版本相比,SMB 1.0协议设计的巨大差异在性能和功能的上有严重的不足,同时只支持SMB1.0或更早协议版本的Windows产品都已经完全退出微软支持的生命周期。如果用户创建新Windows实例,建议至少选择Windows 2008 R2以上的版本。
![](http://static-aliyun-doc.oss-cn-hangzhou.aliyuncs.com/assets/img/18707/155065664132845_zh-CN.png)
IIS提供的FTP服务也同样有着非常广泛的需求。例如,很多Web站点的管理员通过FTP来远程管理Web站点的内容,同时还有很多用户希望利用Windows虚拟机上的FTP服务在广域网和阿里云之间传输和共享文件。
基本设置
这里我们以IIS 7.5 (Windows Server 2008 R2)的设置为例,展示如何通过阿里云NAS在阿里云上提供提供单节点的Web和FTP服务。其它Windows服务器版本如Windows Server 2008和Windows Server 2012的安装和部署也类似。用户可以进一步使用阿里云负载均衡服务来建构多服务器节点的弹性容错的站点。
具体方法请参阅阿里云负载均衡文档。
在公网环境里提供Web 和FTP Service的阿里云ECS虚拟机由于服务的开放性容易受到安全攻击。本文档的设置步骤着重说明如何在功能上连接Web服务与NAS存储,提出某些安全性的考虑,但不能作为完整的安全配置和实现方案。用户需要承担安全方面的所有最终责任,从系统级别(如设置防火墙、ECS实例安全组和及时安装操作系统补丁)和服务级别(如使用阿里云的各个安全产品)来全面保障自己网站服务和数据的安全性。
- IIS安装:
以Windows Server 2008 R2为例,通过服务器管理器添加IIS角色并安装IIS的过程如下面几张图所示。在不同Windows操作系统上安装IIS的详细过程请参阅下面的微软在线文档:
IIS 7的安装和部署
安装 IIS 和 ASP.NET 模块(Windows Server 2012 和2012 R2)
- 用户在服务器管理器中选择添加Web服务器(IIS)角色。
- 用户选择为Web服务器安装的角色服务,除基本的HTTP功能以外,我们还包括了FTP服务及扩展、ASP服务等,用于FTP over SSL服务和演示动态网页脚本的使用。
- 单击安装,以下是安装成功的提示界面。
- 用户在服务器管理器中选择添加Web服务器(IIS)角色。
- NAS SMB文件系统的创建和设置:
您的Web服务资源及配置文件可以集中存储在阿里云NAS的一个SMB share上。创建了一个支持SMB的阿里云NAS文件系统之后,通过设置权限组来保证当前Web服务器可以读写访问SMB share对应的文件系统。您可以使用VPC或者经典网络来连接NAS文件系统和Web服务器。创建和使用阿里云NAS SMB文件系统的具体步骤请参考阿里云博客《阿里云文件存储SMB协议服务及其申请和使用指南》。
创建SMB 文件系统后,您可以在文件系统的缺省share > myshare下创建目录www来存储网站文件。本示例中,在myshare\www下创建两个文件来说明静态网页index.html和动态ASP脚本test.asp的操作流程。前者显示“Hello World!”,后者动态获取并显示当前时间。
Index.html
<HTML> <HEAD> <TITLE>Hello World in HTML</TITLE> </HEAD> <BODY> <CENTER><H1>Hello World!</H1></CENTER> </BODY> </HTML>
Test.asp
如下图所示,当前的ECS虚拟机用户可以通过Windows文件管理器来验证对SMB share的访问。在本示例中,\32f214a370-pcy74.cn-shanghai.nas.aliyuncs.com\myshare\www是网站资源的物理路径,其中\32f214a370-pcy74.cn-shanghai.nas.aliyuncs.com\myshare是我们创建的阿里云NAS SMB share。出于安全和管理的考虑,我们在系统里还加入了一个新用户iis_user。在提供FTP服务或者在Windows Server2016上运行时,我们选择通过该用户而不是系统管理员来进行数据访问。
- 注意首先在服务器上新建这个iis_user用户,步骤:计算机管理器——》本地用户和组下面选择用户单击右键新建用户iis_user,并设置密码,点击确定,用户已创建完成,但是最后要单用户右键设置隶属于Administrators,如下图:
如果不设置会报类似的错误,如:当前标识(iZra9s0rws5ycqZ\iis_user)没有对“C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET
IIS Web服务的设置
![](http://static-aliyun-doc.oss-cn-hangzhou.aliyuncs.com/assets/img/18707/155065664232842_zh-CN.png)
对于Windows Server 2016的用户来说,由于微软在该产品周期做的几个改动,目前需要通过以下的两个额外设置来让IIS和阿里云NAS的SMB服务正确协同工作。
A用户需要改动SMB client的一个注册表项来支持对SMB share的匿名访问。如下图所示,用户需要运行注册表编辑器regedit来修改下面的注册表值。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanWorkstation\Parameters\AllowInsecureGuestAuth
![](http://static-aliyun-doc.oss-cn-hangzhou.aliyuncs.com/assets/img/18707/155065664213133_zh-CN.png)
![](http://static-aliyun-doc.oss-cn-hangzhou.aliyuncs.com/assets/img/18707/155065664213134_zh-CN.png)
除了注册表项外,用户还需要在IIS的网站设置中指定一个本地用户来访问网站在阿里云NAS上的资源。具体的步骤如下面两图所示,用户选取网站的基本设置,再通过连接为设置特定用户,这里选用前面设置的用户iis_user。
另外,由于IIS使用SMB share的方式下访问一个文件时,IIS后台会有多次访问SMB share操作,每次访问的时间不长,但是多次的叠加可能会造成客户端总时间比较长。改进的方式可以参考SMB2 文档将其中提到的三个注册表项都调大,比如600, 或者更大。需要注意的是这些注册表项都在注册表[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\LanmanWorkstation\Parameters]之下,分别是
- FileInfoCacheLifetime
- FileNotFoundCacheLifetime
- DirectoryCacheLifetime
除此之外,建议把js/css等网页程序相关的内容放在本地,因为IIS访问会非常频繁。
IIS FTP服务的设置
很多IIS用户希望用FTP来共享文件或进行网站内容发布。在这里我们介绍如何通过IIS设置FTP over SSL服务 (又名FTP-SSL, S-FTP, FTP Secure)。
- 安装SSL证书
- 用户在IIS的服务器中选择服务器证书,申请和管理服务器证书。
- 用户指定服务器证书的名称。
- 配置和创建SSL证书。
- 用户在IIS的服务器中选择服务器证书,申请和管理服务器证书。
- FTP站点设置
- 用户在IIS的网站部分选择添加FTP站点,和Web服务一样,物理路径需要使用UNC格式的SMB share路径。在这个例子里,我们仍使用前面用过的Web service的www目录。用户可以根据需要选取myshare上其它目录,也可以通过设置多个FTP站点利用不同的端口来提供对不同目录的访问。
- 用户绑定提供FTP服务的IP地址,并分配端口号。这个例子里,我们出于安全的考虑没有使用标准的21端口而是用2222端口来提供FTP的控制信息通道。需要格外注意的是,我们选择需要SSL证书才能连接这个FTP站点,并指定使用前面创建的SSL证书。
- 用户指定身份验证方式为基本,并授权用户iis_user读写权限。您也可以选取更多的授权用户。
- 出于安全考虑,通过在IIS中打开服务器级别FTP防火墙支持来限制FTP数据通道的端口范围,并选取应用。
- 为了使该端口范围立即生效,需要在服务器管理器中重启FTP服务。
- 出于安全考虑,建议用户通过阿里云的安全组设置来限制FTP客户端的访问。在下面的例子里,我们将已经设置的FTP控制及数据端口范围只授权给一个客户端IP访问。您也可以授权给多个IP、一个或多个网段。
- 下面几张图展示了通过FTP客户端WinSCP利用FTP over SSL来访问我们的FTP站点的过程。
接受服务器证书,只在客户端第一次连接FTP站点才发生。设置协议类型,端口号和登录信息。
登录后要求输入密码,即授权用户所在IIS服务器上的密码。
数据连接建立,服务器读取和传输远程目录信息。
用户完成初步连接,可以进行文件的上传下载。
- 用户在IIS的网站部分选择添加FTP站点,和Web服务一样,物理路径需要使用UNC格式的SMB share路径。在这个例子里,我们仍使用前面用过的Web service的www目录。用户可以根据需要选取myshare上其它目录,也可以通过设置多个FTP站点利用不同的端口来提供对不同目录的访问。
总结
本文通过例子介绍了如何结合阿里云NAS的SMB协议支持和ECS Windows虚拟机,使用Windows内置的互联网信息服务(IIS)来提供Web和FTP服务。阿里云NAS服务还在不断发展和演进中,后续会提供更好的协议服务和性能支持。
Windows IIS服务挂载NAS共享文件存储的更多相关文章
- Linux挂载NAS共享文件夹
[root@ftp:/mnt] > mount -o username=user01,password=1234567890 //192.168.31.20/share /mnt/nas [ro ...
- 在Windows Server 2008 R2上安装IIS服务
一.Windows Server 2008 R2 介绍 1.Windows Server 2008 R2 基本概念 2.Windows Server 2008 R2 家族系列 二.VMware虚拟机安 ...
- windows IIS安装php服务及配置
windows IIS安装php服务及配置 启动IIS服务 打开 "控制面板" => "程序" => "启用或关闭Window功能&quo ...
- Windows 远程停止iis服务
最近遇到一个小需求,需要重启远程计算机的iis服务. 需求背景是这样的,用jenkins 做ci的时候, 由于项目是有单独的web服务器,项目虽然是一套, 但是分为A,B,C三个web系统,其中A,B ...
- windows系统IIS服务安装
打开控制面板,win8可以使用快捷键win键+X打开列表 打开程序和功能 打开左上角启用或关闭windows功能 打开internet信息服务下拉单 按照下列图中进行对应项勾选 第一个 ...
- Windows下基于IIS服务的SSL服务器的配置
Windows下基于IIS服务的SSL服务器的配置 实验环境 Windows Server 2008 R1(CA) Windows Server 2008 R2(web服务器) Windows 7 x ...
- windows 2008 R2操作系统上使用iis服务运行php和mysql数据库的网站遇到的验证码不显示问题?
1,本地运行正常,路径没问题. 2,GD2.dll开启 3,IIS服务正常开启,并启用父路径为True 4,检查是否IIS服务中FSO权限问题 开始 -> 程序 -> 管理工具 -> ...
- Linux挂载NAS 网络附属存储
在工作中经常听到NAS,比如做数据交换,将数据从DB2数据库,导入到ORACLE数据库,采用BCP的方式,首先将DB2导出为文件,再从文件导入到ORACLE.那么中间需要一个很大的存储空间来保存从DB ...
- Windows Server 2012 虚拟化实战:存储(一)
在计算机世界我们随处可以见的一种方法,那就是抽象.1946年冯诺依曼提出了计算机的基本结构包含:计算器,存储器和I/O设备.这可能是对计算机这一新生事物最重要的一次抽象,它直接影响了今后几十年计算机软 ...
随机推荐
- osx brew mysql
MariaDB Server is available for installation on macOS (formerly Mac OS X) via the Homebrew package m ...
- CDN和智能DNS原理和应用 (原)
CDN是什么? CDN的全称是Content Delivery Network,即内容分发网络. CDN是构建在网络之上的内容分发网络,依靠部署在各地的边缘服务器,通过中心平台的负载均衡.内容分发.调 ...
- GDI+案例
// // request_handler.cpp // ~~~~~~~~~~~~~~~~~~~ // // Copyright (c) 2003-2017 Christopher M. Kohlho ...
- mysql----------mysql5.7如何配置主从数据库
主库: 1.配置文件里面加入以下两行 server-id=1 log-bin=MySQL-bin 2.创建账户 grant replication client,replication slave o ...
- 无需激活直接同步登入discuz,php代码(直接可用)
<?php /** * 抽奖 * @param int $total */ function getReward($total=1000) { $win1 = floor((0.12*$tota ...
- MSG结构体和WndProc窗口过程详解
MSG结构体和WndProc窗口过程对于Windows编程非常重要,如果不了解它们,可以说就没有学会Windows编程. MSG结构体 MSG 结构体用来表示一条消息,各个字段的含义如下: typed ...
- k-means算法 - 数据挖掘算法(5)
(2017-05-02 银河统计) k-means算法,也被称为k-平均或k-均值,是数据挖掘技术中一种广泛使用的聚类算法. 它是将各个聚类子集内的所有数据样本的均值作为该聚类的代表点,算法的主要思想 ...
- java线程学习之线程创建
线程是程序控制的一个内部数据流.线程的状态转化如下 或者 在java中创建线程有两种方式: 1.实现runnable接口(这个比较好,推荐这个.原因是:用的时候比较灵活,相比较继承Thread类,用接 ...
- java String 类型总结
java中String是个对象,是引用类型?,基础类型与引用类型的区别是,基础类型只表示简单的字符或数字,引用类型可以是任何复杂的数据结构,基本类型仅表示简单的数据类型,引用类型可以表示复杂的数据类型 ...
- MySQL8.0 优化
参考 https://dev.mysql.com/doc/refman/8.0/en/insert-optimization.html https://dev.mysql.com/doc/refman ...