手机浏览 RSS 2.0 订阅 膘叔的简单人生 , 腾讯云RDS购买 | 超便宜的Vultr , 注册 | 登陆
浏览模式: 标准 | 列表Tag:server

ZZ:IIS7在Windows Server 2008 R2中的新改进

IIS团队刚刚发表了IIS7在Window Server 2008 R2 beta中的新改进.Windows Server 2008 R2包括对IIS7 Web服务器的增补,对已经是史上最好的IIS平台进行修正、完善、添加。 今天在Windows Server 2008 R2 Beta中IIS7改进的主要亮点:
内容发布扩展(FTP, WebDav)集成进Web服务器OS/集成Administration Pack扩展到Windows Server OS
新的IIS7  PowerShell Provider和Commandlet支持/丰富的Server Core应用程序托管
改进的FastCGI支持/IIS核心更改/IIS Best Practice Analyzer

过去的一年半中,IIS产品团队在IIS7平台上辛勤编写扩展,发布了beta、TC和RTW们来新增对优化媒体托管、Web内容发布、站点和服务器管理、部署和迁移、请求处理的支持。 没有我们在Windows Server 2008上IIS7中引入的架构变更,我们根本无法在12~18个月中进行创新,并构建面向生产环境、完全受支持的微软软件。现在在Windows Server 2008 R2, 我们对这个IIS7平台再做了一些改进、修正和完善。

今天在Windows Server 2008 R2 Beta中IIS7改进的主要亮点:


内容发布扩展(FTP, WebDav)集成进Web服务器OS

继承内容发布扩展 (FTP, WebDav)进Windows Server OS
在Windows Server 2008发布前很久,我们就开始研发完全重写的FTP服务器和我们的WebDav实现。08年早些时候,我们发布了Windows Server 2008 FTP发布服务下载,具有FTPS安全内容发布、IPv6支持、IIS管理器集成管理FTP/HTTP站点、更强大的日志和认证支持的特性。跟我们所有的扩展一样,Windows Server 2008 FTP发布服务受到微软产品支持的完全支持及由专家用户和产品团队提供的论坛支持。我们在Windows Server 2008 R2中已经做到的是将FTP发布服务集成到服务器操作系统。

从客户角度,这意味着:

    1. 当Windows Server 2008上已经安装了FTP发布服务,你必须在安装新FTP服务前移除旧版。在R2中,你可以作为IIS组件的一部分来安装新的FTP服务器,IIS setup会替换升级旧的FTP服务。

    2. 你可以得到FTP发布服务自2008年2月发布后的bug修复。

    3. 你可以使用新增的认证、日志、授权和home目录扩展性,这些在MSDN上会有文档。

我们也会在2009年5月发布一个更新过的Windows Server 2008 FTP发布服务下载,所以这部分客户也能利用这些bug修复和扩展性。或者说:

(2009年5月版FTP下载 + Windows Server 2008) == (Windows Server 2008 R2中的FTP特性)

但有如下例外:

Windows Server 2008 FTP发布服务始终是一个下载安装,而Windows Server 20008 R2和以后会集成FTP。

2008年7月发布的WebDav也是一样。WebDav for Windows Server 2008提 供了HTTP协议WebDAV扩展的全新实现(直至spec)。我们在Windows Server 2008 R2安装中包含了WebDav。WebDav大的新特性是支持locks。我们也会为Windows Server 2008发布一个支持lock的WebDav,同样是2009年5月。同样地:

(2009年5月版WebDav下载 + Windows Server 2008) == (Windows Server 2008 R2中的WebDav特性)

如下例外:

WebDav for Windows Server 2008 始终是一个下载安装,而Windows Server 20008 R2和以后会集成WebDav。

集成Administration Pack扩展到Windows Server OS

我们把IIS7 Administration Pack集成到Windows Server 2008 R2,为客户提供:

  1. 在IIS Manager中集成管理ASP.NET authorization,自定义错误,FastCGI,和and Request Filtering。

  2. 配置管理器,提供管理IIS7配置系统的可视化编辑器。如果你想试用一下,我们的IIS开发经理Carlos Aguilar Mares撰写了comprehensive blog on the Config Editor's capabilities一文。我最爱的配置管理器部分是脚本生成功能——对做演示非常管用:) 

我们并未将IIS Reports特性集成进Windows Server OS,如果你需要这个功能,你可以在IIS Administration Pack下载中得到。同样的,我们也会为Windows Server 2008用户提供更新的IIS Administration Pack,包括Windows Server 2008 R2种所有的修复和变更(除了集成安装)。

Windows Server 2008版的Administration Pack会和Windows Server 2008 R2一起发布,以确保功能和Windows Server 2008 R2一致。

新的IIS7  PowerShell Provider和Commandlet支持

IIS PowerShell provider,同样有Windows Server 2008版下载,允许用户使用PowerShell编程环境管理IIS,ASP.NET和自定义错误配置。是的,传说是真的——我们有为PowerShell用户们提供IIS:/>。我们的PowerShell支持提供了3个等级的支持:

  1. PowerShell provider: 如果你熟悉IIS配置系统,想直接用PS编程环境来管理配置。

  2. Low-level commandlets: 用我们的low-level commandlets集合来管理每个IIS设置,如果你需要这个程度的细粒度控制。

  3. Task-oriented commandlets: 用我们的面向任务commandlets来管理网站(例如:New-WebSite创建一个站点),备份和恢复web服务器配置及其他常见任务。

集成到Windows Server 2008 R2中,你可以使用Windows Server setup来安装PowerShell provider和60+个commandlets。

和FTP、WebDav一样:

(2009年5月版PowerShell下载 + Windows Server 2008) == (Windows Server 2008 R2中的PowerShell特性)

例外是:

PowerShell for Windows Server 2008 始终是一个下载安装,而Windows Server 20008 R2和以后会集成PowerShell 

更多的PowerShell支持信息,可以查看Group Program Manager和PowerShell大牛Thomas Deml的博客(http://blogs.iis.net/thomad)。

丰富的Server Core应用程序托管

Windows Server 2008 R2上,你可以在Server Core的IIS上跑ASP.NET应用。ASP.NET/CLR做了一些重构工作来确保ASP.NET网页的托管代码环境可以在Server Core上运行。哇!我们不仅能在Server Core上支持图片、媒体、PHP、传统ASP网页,也能跑ASP.NET应用。

Windows Server 2008 R2中的PowerShell 2.0版本处理远程管理,对Server Core安装和新的PowerShell provider很便利。你不仅能在Server Core IIS上托管你的所有应用,本地或远程通过新的IIS PowerShell Provider和commandlets来管理它们也更容易了。在Windows PowerShell blog上有PowerShell大法供参考。

改进的FastCGI支持

IIS7通过我们的FastCGI实现来支持PHP托管,我们在Windows Server 2008 R2 IIS7中持续翻新和提高FastCGI。增强的支持包括:

  1. 支持在IIS Manager中管理FastCGI设置。

  2. 当php.ini变化时自动刷新php-cgi.exe。这个版本中,IIS为每个进程池监视一个文件,如果文件被修改就会recycle这个进程池的FastCGI进程。此特性默认关闭,如果你(通过用户界面的一个设置)打开它,你可以指定监视的文件路径。

  3. FastCGI的FREB支持,你可以更有效的排错PHP和其他FastCGI相容应用。

  4. MaxInstance可以是动态——如果maxInstance设置为0,IIS自动监测系统负载并调整maxInstances。这允许我们优化PHP的性能。

  5. 基于特定错误的控制FastCGI错误行为的支持。

IIS核心更改

基于客户反馈和我们自己在IIS7平台开发扩展的体验,我们也对IIS7平台核心做了一些修改:

  1. 支持配置系统的自定义追踪。

  2. 通过配置轮询来审核或追踪配置变更的能力——这是来自托管商们的要求,特别是想要监视客户们更改配置系统。

  3. ASP.NET支持不同的CLR版本(例如,CLR4.0),随着多个CLR版本的使用,这个特性对开发者切换版本很重要。我们也将此功能向后移植到Windows Server 2008 SP2。

  4. Application pools的更好控制,可以为每应用程序池指定CLR设置,可以用新的Application Pool性能计数器监视性能。

  5. 可委派自定义错误,这是来自开发者的最多要求,他们想让非管理员在本地或远程改变自定义错误。

  6. IP restriction list的IPv6支持。

  7. Request filtering的更细粒度控制,特别对query strings来帮助防止SQL注入式攻击。Request filtering现在也支持请求特定的规则,使SQL注入规则仅对特定请求适用。

  8. Nego2支持,将允许内置支持LiveID providers,FedSSP,和更小粒的Kerberos/NTLM使能。

  9. 支持不要求密码的Managed Service Accounts域账号。

  10. AppPool identity支持——这个太复杂了,以后单独帖子会另行讲。

  11. 支持application pool预热,大型应用程序会需要"起动"一个应用程序池,这样最初的请求们会有更好的性能。

IIS Best Practice Analyzer
Windows Server 2008 R2在Server Manager里引入了一个新特性叫做Best Practice Analyzer。 BPA在Server Manager里提供单一控制台体验来管理跨不同服务器角色的配置的最优实践规则,如Exchange、AD和IIS。在Server Manager里,你可以对一些IIS规则运行BPA针对安全和性能的最优实践——例如,检查确认基本验证不会没有加SSL就启用。针对IIS的BPA规 则并不是巨细无遗,但它确实给予一组良好的核心提示作为起步。我们也会通过Server Manager来更新和增加这些规则。注意这个功能在Server Manager中,不在IIS Manager中。


当然,我们也修复了bugs。

你的反馈帮助了我们修炼IIS7,至今最好的Web服务器平台。今天你可以在这里下载Windows Server 2008 R2 beta,这不失为开始2009年的好办法!

译自:IISBlog
原文来自:http://www.cnbeta.com/articles/74751.htm

Tags: iis, windows, server, changelog

PHP负载均衡

文章的内容写的不错,所以转载一下。
原文:http://xinsync.xju.edu.cn/index.php/archives/2946
内容如下:

XML/HTML代码
  1. 过去当运行一个大的web应用时候意味着运行一个大型的web服务器。因为你的应用吸引了大量的用户,你将不得不在你的服务器里增加更多的内存和处理器。  
  2.   
  3. 今天,’大型服务器’模式已经过去,取而代之的是大量的小服务器,使用各种各样的负载均衡技术。这是一种更可行的方法,将使硬件成本降至最低。  
  4.   
  5. ‘更多小服务器’的优势超过过去的’大型服务器’模式体现在两个方面:  
  6.   
  7.    1. 如果服务器宕机,那么负载均衡系统将停止请求到宕机的服务器,转而分发负载到其他正常运行的服务器上。  
  8.    2. 扩展你的服务器更加容易。你要做的仅仅是加入新的服务器到负载均衡系统。不需要中断你的应用运行。  
  9.   
  10. 所以,把握住这个机会:). 当然,代价就是这要求你的应用开发时增加一点复杂度。这就是本文要覆盖的内容。  
  11.   
  12. 这时你可能对自己说: ‘但是我怎么知道我正在使用负载均衡呢?’。最诚实的回答是,如果你正在问这个问题,那么答案是你多半没有在使用负载均衡系统并且你的系统不需要考虑这个问题。大多数情况,当应用成长足够大的规模时,负载均衡就需要明确提出和设置了。然而,我也偶尔看见虚拟主机公司为客户的应用做这个负载均衡,或者像下面描述的那样要自己来做。  
  13.   
  14. 在继续下面的内容之前,我要指出本文主要描述PHP的负载均衡。将来我可能会写有关数据负载均衡的文字,但是现在你必须等待。  
  15.   
  16. 注意,我一直提“web应用”而不是website,这是想区分’web应用’是那些复杂的站点往往涉及服务器端编程和数据库,而不是website那样只显示简单的静态内容。  
  17. 1. PHP文件  
  18.   
  19. 第一个问题是,如果你有大量的小型服务器,你怎么把你的php文件上传到所有的服务器上?有如下的方法供你参考:  
  20.   
  21.    1. 分别上传所有的文件到每一个服务器 , 这种方法带来的问题是:想像一下你有20个服务器,那么上传过程中这将很容易导致错误,并且更新时极有可能导致不同服务器上有不同版本的文件。  
  22.    2. 使用 ‘rsync ‘ (或类似的软件) . 这样的工具能同步本地目录和多个远程主机目录上的文件。  
  23.    3. 使用版本控制软件(如subversion ) . 这是我最喜欢的方法。用它可以很好地维护我得代码,当发布我的应用时,可以在每一个服务器上运行svn update命令同步。这种方法也使切换服务器得代码到过去的某一个版本更加容易。  
  24.    4. 使用一个文件服务器(你可能发现NFS 非常适合做这件事情). 这种方式是使用一个文件服务器来存放你的web应用. 当然,如果你的文件服务器宕机,那么多所有你的站点将不能使用。这时,你就需要花费更多的开支来恢复它。  
  25.   
  26. 选择哪种方式依赖于你的需求和你掌握的技能。如果你使用版本控制系统,那么你可能得计划一个方法如果同时执行一个更新命令更新所有服务器上的代码。然而,如果使用文件服务器,你就要实现一些失败恢复机制,防止万一服务器宕机导致请求失败。  
  27. 2. 文件上传  
  28.   
  29. 当只有一台服务器时,文件上传不是一个问题。但是当我们有多台服务器时,那么上传的文件应该怎么存放呢?上传文件的问题和跨服务器php文件存储是类似的。下面是几种可能的方案:  
  30.   
  31.    1. 把文件存储到数据库中 。大多数数据允许存储二进制数据。当你请求文件下载时,访问数据把二进制数据和相应的文件名和类型输出给用户。在使用这种方案前应该考虑数据库怎样存储你的文件。该方法的问题在于如果数据库服务器宕机将使文件不可用。  
  32.    2. 在一个文件服务器上存储上传的文件 . 与前面的介绍一样,你要安装一个文件服务器让所有web服务器共享,把所有上传的文件上传到这里,上传后所有的web服务器就都可以使用它。但是,如果文件服务器宕机,那么可能发生图像文件下载中断。  
  33.    3. 设计你自己的上传机制传输文件到服务器到每一个服务器 . 这个方法没有单个文件服务器或者数据库方案的缺陷,但是将增加你代码的复杂度。例如,如果上传到多个服务器过程中,服务器宕机,你要怎么处理?  
  34.   
  35. 用数据库存储上传文件但是设计一个文件缓存机制是一个不错的方案。当服务器接收一个文件下载请求时,首先检查缓存系统中是否有该文件,如果发现那么从缓存系统下载,否则从数据库读取并把它缓存到文件系统中。  
  36. 3. 会话(Sessions)  
  37.   
  38. 如果你熟悉php的session处理,你将可能知道默认情况下,它存储session数据在服务器的临时文件里。而且,这个文件仅仅在你请求处理的那个服务器上,但是接下来的请求可能被另外一个服务器处理,这将在另一个服务器上生成新的session。这导致session频繁地不被识别,如登录用户总是要求重新登录。  
  39.   
  40. 我推荐的方案是,要么重新php内建的session处理机制存储session数据到数据库,或者实现你自己的机制保证发送一个用户的请求到同一台服务器。  
  41. 4. 配置(Configuration)  
  42.   
  43. 尽管这个话题不是和php特别相关,我感觉还是有必要提及。当运行集群服务器时,用某种方法保持服务器之间的配置文件同步是一个好主意。如果配置文件不一致,可能导致一些非常奇怪的断断续续的行为导致很难排查这些问题。  
  44.   
  45. 我推荐使用版本控制系统单独管理他们。这样你可以为不同的项目安装存储不同的php配置文件,也可以保持所有服务器配置文件同步。  
  46. 5. 日志(Logging)  
  47.   
  48. 像配置问题一样,logging不是仅仅和php相关。但是对于保持服务器健康运行它仍然是非常重要的。没有正确的logging系统,你怎么知道如果PHP代码开始产生错误(在系统正式运行时,你总是关闭display_errors 设置,不是吗?)  
  49.   
  50. 有几种方法你可以实现logging:  
  51.   
  52.    1. 在每一个服务器上记录日志。 这是最简单的方法。每一个机器仅仅记录一个文件。好处是简单,可能只要很少的配置。但是,随着服务器数量的增多,监控每台服务器上的日志文件将变得非常困难。  
  53.    2. 记录日志到一个共享 这种方法每一个服务器仍然有这个日志文件,但是他们通过共享机制被存储在一个中央文件服务器上,这将使监控日志变得更简单。该方案的问题在于,如果文件服务器不可用将导致一个简单的日志不能写入问题最终导致整个应用崩溃。  
  54.    3. 记录日志到logging服务器 你可以使用一个logging软件,如syslog 来把所有的日志写到一个中央服务器。尽管这个方法要求更多的配置,但是他也提供了最健壮的方案。  

SVN的机制确实是很多人现在所考虑的,一来这样保证了代码的同步,二来也不需要担心开发版和上线版的区别,更重要的是,每次的update你肯定不会有错。

文件上传其实才是一个大头,当你的服务器过多的时候,你如何保证每一台服务器的上传内容同步?如果你同步了,那么这么多的冗余文件是否是一个浪费?如果你不同步,而采用同一个NFS服务器来存储,那么就象文中说的如果NFS宕机了怎么办?给NFS也来一个负载均衡?

总之,当服务器越来越多的时候,你考虑的就不仅仅是代码的问题,而是架构的问题

Tags: php, server, 负载均衡, 配置

Windows Server 2008登陆Dreamspark 免费使用

9月初,微软允诺Windows Server 2008会登录Dreamspark, 而且是no later than Oct 1st。
9月30号,Win2k8的标准版真的出现在了学生软件资源社区上,这意味着和别的学生软件一样,只要通过简单的验证操作就可以免费下载和使用。Bingo!免费的Server来临了。

访问:Windows Server 2008 Standard Edition


不过,即使你登录了,下载这些软件的时候,还是需要激活KEY的,激活的时候,去的是英文网站,在上面有个verify,好象CHINA只支持三种类型的大学。看起来仿佛几乎没用?

感慨一下下

Tags: windows, server, dreamspark, 2008, 免费