很多童鞋说自己是做移动开发的,想挂个简单的Web API,可是服务器又不会搭,这样一来测试就成了问题。看看网上的教程,发现略难懂,而且大多是一个转一个,没价值,所以干脆写几篇文章讲讲简单的Web服务器怎么搭,让不太涉及Web的童鞋快速上手。
我计划把几个主流的,比如Apache、IIS、Nginx等在Windows或者Linux上的搭建方法都说说,由于自己做的是.NET,所以,第一篇先上IIS吧!
一、IIS服务器的搭建
IIS全称Internet Information Service,中文名:Internet信息服务,专用于微软操作系统平台,兼容微软的各项Web技术,尤其是ASP.NET(其实也就在IIS上能跑),除此之外,IIS还支持CGI,IIS7以后的版本对Fast-CGI支持更好,所以PHP 5.3可以使用Fast-CGI和Zend来优化在IIS上的性能,当然早期的ASP也是可以支持的,JSP的支持相对麻烦,而且性能不好,所以基本没人拿IIS跑JSP。
现在,IIS8已经伴随着Windows Server 2012 R2和Windows 8.1的发布而出现在最新的Windows版本中,所以本文就不拿IIS7以前的古董说事了,IIS7以后的版本,变化幅度很小,应该是在优化性能、增加稳定性和添加新的MIME等一些杂项上的处理。
好了,现在让我们开始!
基本步骤如下:
启用功能 -> 设置网站路径和端口 -> 设置权限 -> 设置杂项 -> 正式发布
1.启用功能:
首先,我们以Windows 桌面版系统为例,进入Windows的“控制面板”,如图所示
image.png
进入“程序”,然后点“启用或关闭Windows功能”,然后就能看到一下选项,找到Internet Information Services(在Windows 7为Internet信息服务,下同),如图所示
image.png
(Windows 桌面版的 Windows 功能)
在Internet Information Services之前的选项框上打勾,会发现有些内容是方块型的,意思是没有完全启用其中的功能,建议按照图片上的介绍把“应用程序开发功能”中的内容全部勾选,要不IIS搭好以后只能挂HTML这种静态网页。勾选完成后,如还需要其他方面的功能,如ODBC日志、动态内容压缩、HTTP重定向等功能,也可以再次勾选,当然现在不勾选以后再加也没问题。
image.png
完成后,点击确定,Windows自动安装IIS功能,安装完成后,建议在“系统和安全”中,完全关闭防火墙,保证IIS的其他端口可被访问,在IE或其他浏览器中,打开http://localhost,出现如下界面,则说明搭建成功
image.png
接下来,我们来看看在Windows Server 2012 R2上的IIS搭建过程
首先,打开“服务器管理器”,在右上角找到“管理”->“添加角色和功能”,如图所示
image.png
image.png
接着,一直点击“下一步”,直到“服务器角色”一项,在右侧列表中找到“Web 服务器(IIS)”一项,如图所示
image.png
image.png
成功添加角色后,会提示你选择所需的功能,类似前面Windows 桌面版的介绍,选择自己所需的功能,推荐将“应用程序开发”中的所有选项全部勾选!如果作为真正的服务器使用,最好把功能全部配齐,省得再次配置。勾选完后,一路“下一步”等待安装完成即可。
(Windows 7和Windows Server 2008 R2的配置类似对应的桌面版和服务器版,可参照上面的介绍配置)
安装完成后,查看Windows服务,可以发现多出一项名为“World Wide Web Publishing Service”的服务,这个服务用于启动和管理IIS进程,保证Windows开机启动时,自动运行,而不需要某一个用户登录。
image.png
2.设置网站路径和端口
虽然服务器功能启用完毕,虽然我们可以在局域网内通过IP地址或者在本机用localhost进行访问,但我们只是浏览了微软给我们的示例,我们需要让IIS展示我们自己写好的网站,此时就需要将网站相关的文件,如:aspx、html、dll等,这里,我们用ASP.NET中最简单的WebForm形式单页面演示如何部署一个真正的动态网站。
首先,假设我们的网站已经在VS中完全开发完成,如图所示,网站基本目录文件如下:
image.png
提前说明一点:这个网站就是一个基本的Web API,根据参数id(GET或POST提交),从数据库中取出对应ID的数据,当id为0或不能转换为int型数据时,返回所有数据,超出范围则返回空数据。
如果直接运行或者调试,会看到下面的画面,其中,浏览器地址是localhost+一个随机的端口号,这是VS将网站挂在了自带的IIS Express上,但IIS Express仅允许本地调试使用,如果在局域网测试或者把VS的调试关闭,则会发现网站不能访问。
image.png
于是,我们现在可以有两种方式整理网站需要的文件,第一是自己手动去复制,第二是用VS自动打包。如果不是网站特别大,文件特别多,还是建议自己复制。如图所示,打开项目的源文件夹,我们会看到许多文件,有.cs、.vscxproj、.config等,其中,我们需要的只有以下几种类型:
第一,网站的视图或页面文件,WebForm为aspx,MVC为cshtml或aspx,WebService为asmx等等
第二,网站的资源文件,如js脚本、图片、css文件等
第三,网站的动态链接库,即整个bin文件夹,及及其中的dll文件
第四,网站的配置文件,Web.config
image.png
剩下的文件,不管以什么后缀名结尾,全部都可以不要,但是不要删,都是你自己的心血!
把这些文件复制到你需要挂网站的地方,如果是服务器系统,只要不是系统目录,你可以任意放,如果是桌面版系统,别放在桌面上、系统目录就行,推荐放在以下几种路径:
第一,IIS默认路径,C:\inetpub\wwwroot\
第二,非C盘的其他路径,如D:\xxx
第三,非网络路径的其他可读写、脚本可执行路径
image.png
接着,我们要在IIS里进行网站路径设置。打开IIS,在左边的列表中看到“网站”一项,如图所示,这里列出了所有在本机IIS服务器上挂载的站点
image.png
现在要考虑是将网站挂在本机的另一个TCP端口(Default Web Site默认绑定80端口,可以将自己的网站挂在8080等端口上)上,还是将网站挂在80端口下的一个虚拟目录中,这里分别介绍。
首先,如果我们将网站挂在8080端口上,我们需要在“网站”中新建一个网站,大致操作为:右键“网站”->“添加网站”->输入信息->点击“确定”即可,其中,“网站名称”任意填写,“物理路径”选择上面放了网站相关文件的目录路径,剩下端口改为8080或者其他未占用端口都行,点击确定,访问http://localhost:8080/或者IP地址即可看到自己的网站了,如图所示
image.png
image.png