通过Windows IIS服务访问阿里云NAS

互联网信息服务(IIS)可以像访问本地数据一样访问SMB文件系统上的数据,并提供Web服务和FTP服务,实现网站存储与计算分离。本文介绍如何配置IIS访问NAS文件系统。

前提条件

背景信息

目前Windows Server仍然是非常流行的网站构建平台。有不少用户选择阿里云ECS Windows实例构建网站服务,将网站内容资源集中存储在一个高可靠、高吞吐的SMB文件系统上,且计算资源和存储资源都支持按需弹性扩容。

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

本文以IIS 7.5(Windows Server 2008 R2)的设置为例,介绍阿里云文件存储NAS如何为阿里云ECS Windows实例提供单节点的Web服务和FTP服务。您也可以使用阿里云负载均衡服务来构建多服务器节点的弹性容错的站点。更多信息,请参见阿里云负载均衡

重要
  • 本文档操作步骤中已提出安全性建议,但不能作为完整的安全配置和实现方案。您需要承担安全方面的所有最终责任,您可以从系统级别(如设置防火墙、ECS实例安全组和及时安装操作系统补丁)和服务级别(如使用阿里云的各个安全产品)来全面保障自己Web服务和数据的安全性。

  • 出于安全和管理的考虑,本案例中新增一个普通用户(iis_user)。在提供FTP服务或者在Windows Server2016上运行IIS Web服务时,请使用该用户而不是系统管理员访问数据。

IIS访问NAS结构图

安装Windows IIS

如下步骤以Windows Server 2008 R2为例,介绍如何使用服务器管理器添加IIS角色并安装IIS。

说明

不同版本Windows操作系统上安装IIS,请参见安装IISASP.NET模块(Windows Server 2012Windows Server 2012 R2)

  1. Windows客户端,选择开始 > 管理工具 > 服务器管理器

  2. 服务器管理器对话框左侧导航栏,单击角色,然后单击添加角色

  3. 添加角色向导对话框左侧导航栏,单击服务器角色,选中Web 服务器(IIS)

    勾选Web 服务器(IIS)

  4. 添加角色向导对话框左侧导航栏,单击角色服务,为Web服务器(IIS)选择需安装的角色服务。

    除默认已选中的服务外,还需选中ASPFTP 服务器等,用于FTP服务和演示动态网页脚本。

    选择角色

  5. 单击下一步,按照提示完成安装。

访问SMB文件系统

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

  1. 打开Windows文件管理器,输入\\file-system-id.region.nas.aliyuncs.com\myshare访问SMB文件系统。其中:

    • file-system-id.region.nas.aliyuncs.comSMB文件系统的挂载点地址。关于如何获取SMB文件系统的挂载点地址,请参见查看挂载点地址

    • myshareSMB文件系统的默认共享目录,不支持修改。

  2. SMB文件系统的默认共享目录(myshare目录)下创建www目录,用来存储网站文件。

    如下示例,在myshare\www目录下创建静态网页index.html文件和动态ASP脚本test.asp文件的操作流程。

    • Index.html

      <HTML>
        <HEAD>
           <TITLE>Hello World in HTML</TITLE>
        </HEAD>
        <BODY>
           <CENTER><H1>Hello World!</H1></CENTER>
        </BODY>
      </HTML>                         

      此示例显示为Hello World!

    • Test.asp

      <HTML>
        <BODY>
           This page was last refreshed on <%= Now() %>.
        </BODY>
      </HTML>                            

      此示例动态获取并显示当前时间。

设置Windows IIS Web服务

  1. Windows服务器,选择开始 > Windows系统 > Windows管理工具 > Internet 信息服务(IIS)管理器

  2. 在左侧导航栏,选择网站 > Default Web Site,单击基本设置

  3. 编辑网站对话框中,配置物理路径并单击确定

    物理路径文本框中输入Web资源在阿里云NAS上的存储路径,如\\file-system-id.region.nas.aliyuncs.com\myshare\www。其中,file-system-id.region.nas.aliyuncs.comSMB文件系统的挂载点地址,请根据实际情况替换。

    配置物理路径

    说明

    Windows IIS默认通过IIS应用程序账号和用户组访问,不支持Windows系统桌面用户直接使用在当前user session中映射的网络驱动器如(Z:\),否则可能出现访问失败的错误。

  4. 可选:修改注册表及添加iis_user用户。

    如果是Windows Server 2016操作系统,则需要修改注册表及添加iis_user用户才能实现IIS和阿里云NAS协同工作;如果是Windows Server 2019操作系统,在修改注册表及添加iis_user用户后还需要执行PowerShell命令New-SmbGlobalMapping进行挂载,解决dll无法加载的问题,才能实现IIS和阿里云NAS协同工作。操作步骤如下:

    1. 修改SMB客户端的注册表项。

      1. Windows服务器,选择开始 > Windows管理工具 > 注册表编辑器

      2. 注册表编辑器左侧导航栏,选择HKEY_LOCAL_MACHINE > SYSTEM > CurrentControlSet > Services > LanmanWorkstation > Parameters > AllowInsecureGuestAuth,右键选择新建 > DWORD(32 位)值

      3. 设置数值名称为AllowInsecureGuestAuth,数值数据为1,单击确定

    2. 指定一个本地用户来访问存储在阿里云NAS上的Web资源。

      1. Windows服务器,选择开始 > Windows系统 > Windows管理工具 > Internet 信息服务(IIS)管理器

      2. 在左侧导航栏,选择网站 > Default Web Site,单击基本设置

      3. 编辑网站对话框中,单击连接为

      4. 选择特定用户,单击设置IIS-1

    3. 设置用户名、密码,单击确定

      此处用户设置为iis_user。IIS-2

    4. 使用PowerShell命令New-SmbGlobalMapping挂载SMB文件系统。

      # Define clear text string for username and password
      [string]$userName = 'WORKGROUP\administrator'
      [string]$userPassword = '****'
      
      # Convert to SecureString
      [securestring]$secStringPassword = ConvertTo-SecureString $userPassword -AsPlainText -Force
      
      [pscredential]$credObject = New-Object System.Management.Automation.PSCredential ($userName, $secStringPassword)
      New-SmbGlobalMapping -LocalPath z: -RemotePath \\file-system-id.region.nas.aliyuncs.com\myshare -Persistent $true -Credential $credObject

      其中,****为操作系统administrator的密码;file-system-id.region.nas.aliyuncs.comSMB文件系统的挂载点地址,请根据实际值替换。

      说明
  5. 验证设置结果。

    通过本地浏览器访问localhost或者127.0.0.1index.htmltest.asp,如果显示如下页面,表示IIS已正常执行Web服务。您还可以设置阿里云ECS安全组和Windows防火墙来确保Web访问安全。

    验证结果验证结果

设置Windows IIS FTP服务

  1. Windows服务器,选择开始 > Windows系统 > Windows管理工具 > Internet 信息服务(IIS)管理器

  2. 安装SSL证书。

    1. 在当前主机的主页中,双击服务器证书

      安装服务器证书

    2. 服务器证书页面,单击创建自签名证书

    3. 设置服务器证书名称,单击确认

  3. 设置FTP站点。

    1. 在左侧导航栏,双击网站

    2. 网站页面中,单击添加FTP站点

    3. 添加FTP站点页面,配置相关信息,单击下一步

      物理路径文本框中输入Web资源在阿里云NAS上的存储路径,如\\file-system-id.region.nas.aliyuncs.com\myshare\www。其中,file-system-id.region.nas.aliyuncs.com为挂载点地址,请根据实际情况替换。

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

      设置物理路径

    4. 绑定和SSL设置对话框中,设置相关信息,单击下一步

      配置如下:

      • 端口:默认端口为21,此处出于安全考虑使用2222端口。

      • SSL证书:选择已创建的SSL证书。

      设置物理路径

    5. 配置身份验证和授权信息,单击完成

      配置如下:

      • 身份验证:设置为基本

      • 授权:选择允许访问的用户,此处以iis_user为例。

      • 权限:设置用户读写权限。

      配置身份验证和授权信息

  4. 设置FTP防火墙。

    在当前主机主页中,双击FTP防火墙支持,设置数据通道端口范围,单击应用

    FTP 防火墙

  5. 返回服务器管理器页面,重启FTP服务,使端口范围配置生效。

    重启FTP服务

  6. ECS控制台上,设置ECS实例的安全组,用来限制FTP客户端的访问。具体操作,请参见创建安全组

  7. 通过FTP客户端WinSCP访问FTP站点。

    1. 打开WinSCP。

    2. 单击Yes,接受服务器证书。

      接收服务器证书

    3. 设置协议类型、端口号和登录信息。

      设置协议类型

    4. 输入密码,即授权用户(iis_user)的密码。

      设置密码

    5. 建立数据连接,服务器读取和传输远程目录信息。

      建立数据连接

    6. 创建连接后,即可上传或下载文件。

      上传下载数据

常见问题

IIS如何写日志到SMB文件系统?

如果需要将IIS日志写入SMB文件系统,需要先使用SYSTEM身份挂载SMB文件系统再进行写入,否则会报错。具体操作,请参见SYSTEM身份挂载文件系统解决SQLServer使用SMB文件系统的问题

使用SYSTEM身份成功写入日志后,会自动创建W3SVC1日志文件夹存储相关日志文件。