互联网信息服务(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服务时,请使用该用户而不是系统管理员访问数据。
安装Windows IIS
如下步骤以Windows Server 2008 R2为例,介绍如何使用服务器管理器添加IIS角色并安装IIS。
不同版本Windows操作系统上安装IIS,请参见安装IIS和ASP.NET模块(Windows Server 2012和Windows Server 2012 R2)。
在Windows客户端,选择 。
在服务器管理器对话框左侧导航栏,单击角色,然后单击添加角色。
在添加角色向导对话框左侧导航栏,单击服务器角色,选中Web 服务器(IIS)。
在添加角色向导对话框左侧导航栏,单击角色服务,为Web服务器(IIS)选择需安装的角色服务。
除默认已选中的服务外,还需选中ASP、FTP 服务器等,用于FTP服务和演示动态网页脚本。
单击下一步,按照提示完成安装。
访问SMB文件系统
您的Web资源及配置文件可以集中存储在SMB文件系统共享目录(默认为myshare)上。您可以通过设置权限组来确保当前Web服务器可以读写访问SMB文件系统。
打开Windows文件管理器,输入\\file-system-id.region.nas.aliyuncs.com\myshare访问SMB文件系统。其中:
file-system-id.region.nas.aliyuncs.com为SMB文件系统的挂载点地址。关于如何获取SMB文件系统的挂载点地址,请参见查看挂载点地址。
myshare为SMB文件系统的默认共享目录,不支持修改。
在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服务
在Windows服务器,选择 。
在左侧导航栏,选择 ,单击基本设置。
在编辑网站对话框中,配置物理路径并单击确定。
在物理路径文本框中输入Web资源在阿里云NAS上的存储路径,如\\file-system-id.region.nas.aliyuncs.com\myshare\www。其中,file-system-id.region.nas.aliyuncs.com为SMB文件系统的挂载点地址,请根据实际情况替换。
说明Windows IIS默认通过IIS应用程序账号和用户组访问,不支持Windows系统桌面用户直接使用在当前user session中映射的网络驱动器如(Z:\),否则可能出现访问失败的错误。
可选:修改注册表及添加iis_user用户。
如果是Windows Server 2016操作系统,则需要修改注册表及添加iis_user用户才能实现IIS和阿里云NAS协同工作;如果是Windows Server 2019操作系统,在修改注册表及添加iis_user用户后还需要执行PowerShell命令New-SmbGlobalMapping进行挂载,解决dll无法加载的问题,才能实现IIS和阿里云NAS协同工作。操作步骤如下:
修改SMB客户端的注册表项。
在Windows服务器,选择
。在注册表编辑器左侧导航栏,选择
,右键选择 。设置数值名称为AllowInsecureGuestAuth,数值数据为1,单击确定。
指定一个本地用户来访问存储在阿里云NAS上的Web资源。
在Windows服务器,选择
。在左侧导航栏,选择
,单击基本设置。在编辑网站对话框中,单击连接为。
选择特定用户,单击设置。
设置用户名、密码,单击确定。
此处用户设置为iis_user。
使用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.com
为SMB文件系统的挂载点地址,请根据实际值替换。说明通过IIS使用NAS共享目录中的文件时,会造成IIS后台多次访问NAS共享目录。虽然每次访问时间不长,但是多次叠加可能造成客户端等待时间较长。具体解决方案,请参见如何提升IIS访问NAS的性能。
IIS访问Js、CSS等网页程序相关的内容非常频繁,建议您将这些内容存储在本地。
参照以上内容后仍然产生写入失败等问题,请您参考通过安装和配置AD域解决Windows Server 2016的IIS无法加载SMB文件卷文件的问题处理,或联系NAS技术支持进行咨询。
验证设置结果。
通过本地浏览器访问localhost或者127.0.0.1的index.html和test.asp,如果显示如下页面,表示IIS已正常执行Web服务。您还可以设置阿里云ECS安全组和Windows防火墙来确保Web访问安全。
设置Windows IIS FTP服务
在Windows服务器,选择 。
安装SSL证书。
在当前主机的主页中,双击服务器证书。
在服务器证书页面,单击创建自签名证书。
设置服务器证书名称,单击确认。
设置FTP站点。
在左侧导航栏,双击网站。
在网站页面中,单击添加FTP站点。
在添加FTP站点页面,配置相关信息,单击下一步。
在物理路径文本框中输入Web资源在阿里云NAS上的存储路径,如\\file-system-id.region.nas.aliyuncs.com\myshare\www。其中,file-system-id.region.nas.aliyuncs.com为挂载点地址,请根据实际情况替换。
您可以根据需求选取myshare目录下的其它目录,也可以通过设置多个FTP站点利用不同的端口来提供对不同目录的访问。
在绑定和SSL设置对话框中,设置相关信息,单击下一步。
配置如下:
端口:默认端口为21,此处出于安全考虑使用2222端口。
SSL证书:选择已创建的SSL证书。
配置身份验证和授权信息,单击完成。
配置如下:
身份验证:设置为基本。
授权:选择允许访问的用户,此处以iis_user为例。
权限:设置用户读写权限。
设置FTP防火墙。
在当前主机主页中,双击FTP防火墙支持,设置数据通道端口范围,单击应用。
返回服务器管理器页面,重启FTP服务,使端口范围配置生效。
在ECS控制台上,设置ECS实例的安全组,用来限制FTP客户端的访问。具体操作,请参见创建安全组。
通过FTP客户端WinSCP访问FTP站点。
打开WinSCP。
单击Yes,接受服务器证书。
设置协议类型、端口号和登录信息。
输入密码,即授权用户(iis_user)的密码。
建立数据连接,服务器读取和传输远程目录信息。
创建连接后,即可上传或下载文件。
常见问题
IIS如何写日志到SMB文件系统?
如果需要将IIS日志写入SMB文件系统,需要先使用SYSTEM身份挂载SMB文件系统再进行写入,否则会报错。具体操作,请参见以SYSTEM身份挂载文件系统解决SQLServer使用SMB文件系统的问题
使用SYSTEM身份成功写入日志后,会自动创建W3SVC1日志文件夹存储相关日志文件。