10.4.2 IIS 7 fcgi + SQL server(1)

来源:互联网 时间:1970-01-01

在普遍的部署观念中,微软平台实在不能列入到生产环境的首选行列中,尤其是考虑到成本和数据库及其他应用软件在Windows 平台上运行的困难程度。但是,Rails 开发的Web 应用不仅仅限于在互联网上运行,也有很多企业内部的应用。为了能够利用到旧有的信息资产(软硬件和数据),快速高效地开发出企业Web 应用,加速Rails 企业化的脚步,也可能将应用部署到Windows平台上。尽管这在性能上不一定具备绝对的优势,但它部署的简便性与熟练性可弥补与其他平台方案的差距,将其部署到Windows 上也不能说完全是不明智的做法。

Microsoft 平台最新的IIS 7 版本对fcgi 的性能进行提高,将给Rails 应用打开另外一片广阔天地。2007 年10 月微软官方宣布IIS 将对FastCGI 扩展的正式承诺,在即将发布的Windows Server2008 中提供用于IIS 7 的免费模块FastCGI。该模块不但帮助PHP 提升在Windows 平台的运行效率,而且为其他包括Ruby 在内的动态语言提升了在Windows 平台的可用性。FastCGI 和IIS 内嵌的系统内核级别缓存功能极大地提高了动态语言的速度,IIS 内置管理功能方便了在企业应用中与AD 相结合的开发应用,对越来越多的Ruby 和Rails 开发者产生了强大的吸引力。

在最新的Server 2008 中,IIS 及Powershell 的命令行工具促使其管理风格逼近Linux 和Unix的文档配置风格,图形界面与文档化的配置几乎完全相互通达,这样会使熟悉Unix 和Linux 的开发人员更容易接受,同样且通用的一致性的管理风格会使部署和管理更加方便。其突出的特性Shared Configuration 就是将IIS7 的全局配置文件放置在一个非本地的共享环境中,使多个IISServer 共享该配置文件。只要对配置文件做更改,与其相关的所有的Server 都能感知配置变动并做出响应。修改共享的配置文件,既可通过经典方式进行IIS Manager 界面管理,也可用脚本或新增的appcmd 命令行来实现。

有很多性能对比的数据被公布,但却缺少Ruby 在微软平台上的实际应用的而且比较客观的Benchmarking 测评数据。据MSDN 上的数据显示,Windows Server 2008 IIS 内置的FastCGI 机制的确可以让PHP 的解析速度提高一倍甚至提高130%。针对新加坡网站StreetDirectory.com,从部署Windows Server 2008 作为Web 服务器后得到的性能提升数据并结合用户回馈得知PHP 程序的运行甚至比原生的LAMP 环境还要好,该网站声称没有针对访问进行任何优化,仅仅是将Web服务器迁移升级到Windows Server 2008 而已。

在Windows 平台上不纯粹是微软产品的独角戏,其他优秀的开源软件也常常运行在Windows平台上,并显示出相当高的性能。一些数据表明(如图10.16 所示),微软平台上Apache 的Web服务器也有很多,并常年在企业内部网中默默地运作,与其他的微软产品如数据库结合使用。Rails的微软平台部署上,一般来说有如下4 种组合方式:

  (点击查看大图)图10.16 微软平台上Web 服务器对比

(1)Mongrel 整合Rails 到现有的IIS 架构中;

(2)多个Rails 应用在Windows 平台上用Apache 加上mongrel;

(3)将Rails 应用由Apache 加FastCGI 整合到现有的IIS 架构中;

(4)整合Rails 应用到现存的IIS 架构中使用Lighttpd 和Mongrel Clusters。

具体实施方法参见后面参考资料中的网络链接,可以在其中下载相关的技术文档。下面介绍Windows 平台上试验部署演练的过程。

 


相关阅读:
Top