本文介绍如何配置Windows内置的互联网信息服务(IIS)和阿里云NAS,提供Web服务和FTP服务。

背景信息

阿里云NAS主要面向阿里云ECS实例、E-HPC、容器服务、弹性Web和BatchCompute等计算节点提供文件存储服务,兼容标准的文件访问协议NFS和SMB。

与NFS相比,SMB文件系统访问协议更加适合于Windows操作系统。各个版本的Windows对SMB协议都能很好的支持,绝大多数Windows应用程序不经修改即可通过SMB协议访问阿里云NAS。因此,当应用程序集中运行在ECS Windows实例上时,建议优先考虑使用SMB文件系统。

目前Windows Server仍然是非常流行的网站建构平台。在阿里云现有的用户中,有不少用户选择阿里云ECS Windows实例提供网站服务。通过将网站内容资源集中存储在一个高可靠、高吞吐、按量付费的阿里云NAS(SMB文件系统)上,IIS可以像访问本地数据一样访问阿里云NAS上的数据,从而实现网站的存储和计算服务分离。此外,计算资源和存储资源都可以支持按需弹性扩容。

IIS提供的FTP服务也同样有着非常广泛的需求。很多Web站点的管理员通过FTP来远程管理Web站点的内容,同时还有很多客户希望利用 Windows虚拟机上的FTP服务在广域网和阿里云之间传输和共享文件。

本文以IIS 7.5(Windows Server 2008 R2)的设置为例,介绍如何通过阿里云NAS在阿里云ECS Window实例上提供单节点的Web服务和FTP服务。其它Windows操作系统版本操作步骤类似。您也可以使用阿里云负载均衡服务来建构多服务器节点的弹性容错的站点,详情请参见阿里云负载均衡文档

说明
  • 本文档的操作步骤中提出一些安全性建议,但不能作为完整的安全配置和实现方案。您需要承担安全方面的所有最终责任,您可以从系统级别(如设置防火墙、ECS实例安全组和及时安装操作系统补丁)和服务级别(如使用阿里云的各个安全产品)来全面保障自己Web服务和数据的安全性。
  • 出于安全和管理的考虑,本案例中新增一个普通用户(iss_user)。在提供FTP服务或者在Windows Server2016上运行IIS Web服务时,使用该用户而不是系统管理员访问数据。
架构图

安装Windows IIS

此处以Windows Server 2008 R2为例,介绍通过服务器管理器添加IIS角色并安装IIS的操作步骤。

在不同Windows 操作系统上安装IIS的详细过程请参见安装 IIS 和 ASP.NET 模块(Windows Server 2012 和 Windows Server 2012 R2)

  1. 打开服务器管理器页面。
  2. 选择角色页签,单击添加角色,进入添加角色向导对话框。
  3. 选择服务器角色页签,勾选Web 服务器(IIS)
    勾选Web 服务器(IIS)
  4. 选择角色服务页签,为Web 服务器(IIS)选择需安装的角色服务。

    除默认已勾选的服务外,还需勾选FTP服务及扩展ASP等,用于FTP服务和演示动态网页脚本。

    选择角色
  5. 配置完成后,单击安装

创建并访问SMB文件系统

您的Web资源及配置文件可以集中存储在阿里云NAS的SMB共享目录(默认为myshare)上。创建SMB文件系统后,可以通过设置权限组来保证当前Web服务器可以读写访问SMB文件系统。

  1. 创建SMB 文件系统,详情请参见创建文件系统
  2. 为SMB文件系统添加挂载点,详情请参见添加挂载点
  3. 打开Windows文件管理器,输入\\xxxx-xxxx.cn-hangzhou.nas.aliyuncs.com\myshare访问SMB文件系统。
    • xxxx-xxxx.cn-hangzhou.nas.aliyuncs.com为SMB文件系统的挂载点域名。
    • myshare为SMB文件系统的默认共享目录,不可变更。
  4. 在SMB文件系统的默认共享目录(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
      <HTML>
      
        <BODY>
      
           This page was last refreshed on <%= Now() %>.
      
        </BODY>
      
      </HTML>
      
      								

设置Windows IIS Web服务

  1. 打开Internet 信息服务(IIS)管理器
  2. 在当前主机下,选择网站 > Default Web Site,单击基本设置
  3. 编辑网站对话框中,配置物理路径并单击确定

    物理路径框中输入Web资源在阿里云NAS上的存储路径,如\\xxxx-xxxx-shanghai.nas.aliyuncs.com\myshare\www。其中,xxxx-xxxx-shanghai.nas.aliyuncs.com为挂载点域名,请根据实际情况替换。

    说明
    • 由于Windows IIS默认通过IIS的应用程序账号和用户组访问,Windows桌面用户不可直接使用在当前user session中映射的网络驱动器如(Z:\),否则会出现访问失败的错误。
    • 对于Windows Server 2016操作系统,设置Windows IIS Web服务后,还需完成其他操作才能实现IIS和阿里云NAS协同工作,详情请参见常见问题
    配置物理路径
  4. 验证设置结果。

    通过本地浏览器访问localhost或者127.0.0.1的index.html和test.asp,如果显示如下页面,则表示IIS已可以正常进行Web服务。

    您还可以设置阿里云ECS安全组和Windows防火墙来控制Web访问安全。

    验证结果验证结果

设置Windows IIS FTP服务

  1. 打开Internet 信息服务(IIS)管理器
  2. 安装SSL证书。
    1. 在当前主机的主页中,双击服务器证书
      安装服务器证书
    2. 服务器证书页面,单击创建自签名证书
    3. 设置服务器证书的名称,单击确认
  3. 设置FTP站点。
    1. 网站页面中,单击添加FTP站点
    2. 添加 FTP 站点页面,配置相关信息,单击下一步

      物理路径框中输入Web资源在阿里云NAS上的存储路径,如\\xxxx-xxxx-shanghai.nas.aliyuncs.com\myshare\www。其中,xxxx-xxxx-shanghai.nas.aliyuncs.com为挂载点域名,请根据实际情况替换。

      您可以根据需求选取myshare目录下的其它目录,也可以通过设置多个FTP站点利用不同的端口来提供对不同目录的访问。

      设置物理路径
    3. 绑定和 SSL 设置对话框中,设置相关信息,单击下一步
      • 端口:默认端口为21,此处处于安全考虑使用2222端口。
      • SSL证书:选择已创建的SSL证书。
      设置物理路径
    4. 配置身份验证和授权信息,单击完成
      • 身份验证:设置为基本
      • 授权:选择允许访问的用户,此处以iis_user为例。
      • 权限:设置用户读写权限。
      配置身份验证和授权信息
  4. 设置FTP防火墙。

    打开FTP 防火墙支持,设置数据通道端口范围,单击应用

    FTP 防火墙
  5. 服务器管理器页面中,重启FTP服务,使端口范围配置生效。
    重启FTP服务
  6. 在ECS控制台上,设置ECS实例的安全组,用来限制FTP客户端的访问,详情请参见创建安全组
    配置安全组
  7. 通过FTP客户端WinSCP访问FTP站点。
    1. 打开WinSCP。
    2. 单击Yes,接受服务器证书。

      FTP客户端首次连接FTP站点时,需接受服务器证书。

      接收服务器证书
    3. 设置协议类型,端口号和登录信息。
      设置协议类型
    4. 输入密码,即授权用户(iis_user)的密码。
      设置密码
    5. 建立数据连接,服务器读取和传输远程目录信息。
      建立数据连接
    6. 完成连接后,上传下载文件。
      上传下载数据

常见问题

在Windows Server 2016操作系统中,如何实现IIS和阿里云NAS协同工作?

对于Windows Server 2016操作系统,设置Windows IIS Web服务后,还需完成以下配置才能实现IIS和阿里云NAS协同工作,具体操作如下所示。

  1. 修改SMB客户端的注册表项。
    1. 打开注册表编辑器。
    2. 找到找到注册表项HKEY_LOCAL_MACHINE > SYSTEM > CurrentControlSet > Services > LanmanWorkstation > Parameters > AllowInsecureGuestAuth,右键选择新建 > DWORD(32 位)值
    3. 设置数值名称为AllowInsecureGuestAuth,并将其值设置为1
  2. 指定一个本地用户来访问存储在阿里云NAS上的Web资源。
    1. 打开Internet 信息服务(IIS)管理器
    2. 在当前主机下,选择网站 > Default Web Site,单击基本设置
    3. 编辑网站对话框中,单击连接为
    4. 选择特定用户,单击设置
    5. 设置用户名、密码,单击确定
      此处用户设置为iis_user。
说明
  • 通过IIS使用NAS共享目录中的文件时,会造成IIS后台多次访问NAS共享目录。虽然每次访问时间不长,但是多次叠加可能造成客户端等待时间较长。您可以调大HKEY_LOCAL_MACHINE > SYSTEM > CurrentControlSet > Services > LanmanWorkstation > Parameters下的FileInfoCacheLifetimeFileNotFoundCacheLifetimeDirectoryCacheLifetime这三项注册表项的值(比如修改为600),详情请参见SMB2 Client Redirector Caches Explained
  • 如果找不到以上三个注册表项,则按照Windows的字段格式要求进行创建。
  • IIS访问js/css等网页程序相关的内容非常频繁,建议把这些内容放在本地。