<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>朱俊独立博客 &#187; .Net</title>
	<atom:link href="http://www.zhujun.org/tag/dotnet/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.zhujun.org</link>
	<description>邪恶获得胜利的唯一条件，就是善良的人们保持沉默。</description>
	<lastBuildDate>Sun, 05 Feb 2012 06:34:33 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>把网站从ASP/ASPX迁徙到PHP了</title>
		<link>http://www.zhujun.org/web/migrate-aspx-to-php/</link>
		<comments>http://www.zhujun.org/web/migrate-aspx-to-php/#comments</comments>
		<pubDate>Wed, 28 Apr 2010 10:42:35 +0000</pubDate>
		<dc:creator>朱俊</dc:creator>
				<category><![CDATA[网络开发]]></category>
		<category><![CDATA[.Net]]></category>
		<category><![CDATA[LNMP]]></category>

		<guid isPermaLink="false">http://www.zhujun.org/?p=150</guid>
		<description><![CDATA[讲述了将网站从Windows+IIS+MSSQL+ASP/ASPX迁徙到LNMP(Linux+Nginx+MySQL+PHP)平台的原因、过程、时间成本和带来速度提升的结果。]]></description>
			<content:encoded><![CDATA[<p>好久没有更新博客，这个月一直很忙，主要把手中几个网站从Windows IIS平台迁徙到了Linux Nginx下面。由于Linux对asp和aspx的支持不好，虽然有MONO，但Access和MSSQL数据库还是无法支持，所以把asp和aspx的网站全部换成php的了。</p>
<p>通过最近半个月左右的观察，感觉LNMP(Linux+Nginx+MySQL+PHP)平台没有让我失望，付出的劳动应该是值得的。<br />
<span id="more-150"></span></p>
<h3>为什么要从Windows+IIS+ASP/ASPX+MSSQL换到LNMP</h3>
<ul>
<li>成本<br />自从被宫信步赶到国外以后，就一直承受着昂贵的Windows License Fee，每个月十几至几十美元，无法一次性买断。虽然我的皮包公司 &#8211; <a href="http://www.skyker.com" rel="external">步天软件</a>是MicroSoft BizSpark成员，可以免费使用微软几乎所有产品，但这不代表我能把我的License Key交给美国IDC使用，大部分正规的IDC都会拒绝用户提供的Key，因为微软貌似有个规定KEY和硬件的提供人必须是一个。<br />换到Linux可以节省运营成本，谁叫俺是穷人呢。</li>
<li>稳定<br />之前连连看的论坛是ASP.Net的Discuz论坛，经常抛异常，甚至导致w3wp进程死掉。换到PHP的Discuz 7.2后，论坛表现的很稳定，而且速度也有所提升。<br />7、8年前ASP.Net 1.1刚出来的时候，我觉得.Net只要5、6年时间就可以一统江湖，但现在无论是桌面开发还是网络开发，.Net的表现都不尽如人意。<br />曾经吹牛说Vista是基于.Net的操作系统，结果非常莫名其妙，UAC更是失败中的失败，APP不准写自身文件夹，非要写系统的用户文件夹，难道这就是多用户？现在又把Vista 6.0的内核升到6.1，就当作Win7来卖，实在不明白微软那么多工程师在搞什么。</li>
<li>方便<br />Linux管理起来比Windows方便多了，IIS的图形界面使用起来非常低效，rewrite功能不行，需要外置模块或使用ASP.Net的rewrite。<br />MS SQL Server 2000的备份功能很弱，经常因为用户权限的问题导致Discuz论坛无法使用，比如恼人的“对象名 &#8216;dnt_templates&#8217; 无效”。<br />而Linux无论使用crontab进行自动备份还是使用各种工具比如PHPMyAdmin手动备份都很方便。</li>
</ul>
<h3>迁徙成本</h3>
<p>Discuz的.Net论坛有升级包可以直接转换到PHP的版本，虽然有些帖子需要重新编辑，大部分附件地址有问题，需要重新修改，但时间成本不超过2天。</p>
<p>另一个人工智能网站是基于ASP的动易CMS，由于年代太久远了，无法直接升级，于是使用的DedeCMS做的采集，大部分内容进行了重新编辑，加上界面模板修改，大约花了10多天时间。</p>
<p>最后是自己用ASP.NET 2.0编写的公司网站，花了3、4天重新设计和编写，还没完全完成。原先ASP.NET生成的html代码比较冗余，一大串ViewState的编码，经常自带很长的id名，不利于SEO，换到PHP后好多了，也通过了W3C的验证。</p>
<h3>迁徙结果</h3>
<h4>网站响应速度有所提升</h4>
<p>下图是监控宝提供的连连看网站响应时间变化图，约在下午3点，网站由Win2003/IIS迁移到了Debian5/Nginx。<br />
<img src="/wp-content/uploads/2010/04/iis-nginx.png" alt="IIS Nginx htm速度比较" /><br />
由于LLK.cn的网页基于shtml制作，没有用到动态技术，该图较好地反应两种web server在性能上的区别。<br />
可以看到，IIS服务器在0点和10点分别有两次服务器计算，消耗了较长时间，反应出IIS在建立连接上面比较慢。<br />
另外，切换到Nginx后，传输时间也相应减少，不过这可能仅仅是因为网络原因。</p>
<h4>页面执行速度有所提升</h4>
<p>连连看论坛从ASP.NET换到PHP后，页面执行时间方面从0.0x 降到了0.00x ，当然后者是用了eaccelerator编译PHP代码的，可ASP.NET也会编译啊。</p>
<p>人工智能网从asp换成php后，提升效果则更为明显，看图即知，都无需指明是几点切换的，这是两种完全没有可比性的技术。<br />
<img src="/wp-content/uploads/2010/04/iis-asp-nginx-php.png" alt="IIS ASP和Nginx PHP速度比较" /></p>
<h3>结论</h3>
<p>这次Web Server从Windows/IIS换到Linux/Nginx，网站从ASP/ASPX换到PHP，带来了性能上的提升和管理上的方便。<br />
从监控宝的监控视图上可以看到DNS域名解析时间不太稳定，0-500ms都有，联通（网通）视图中甚至会超过1000ms，严重影响用户打开网页的速度，下一篇将讲述<a href="http://www.zhujun.org/web/how-to-improve-dns-resolution-time/" >如何缩短域名的DNS解析时间来加快网页打开速度</a>。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.zhujun.org/web/migrate-aspx-to-php/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
	</channel>
</rss>

