Web服务器
一个网站最重要的就是Web服务器,因为它会把数据转换为页面(HTML)返回给浏览者,这种说法仅限于目前的环境。在SNS区,Web服务器 后面是由多台应用程序服务器组成。为了减少成本,现在项目只有一台Web服务器,但是此台服务器上运行了多个站点和服务,后期可以根据访问量,把这些站点 和服务扩展到 另外的服务器上。此台服务器的系统环境和所运行的服务如下:
- 操作系统:Windows Server 2008R2 x64
- Web服务器:IIS 7、.NET Framework 4、ASP.NET MVC 3+Razor
- 运行站点:内容区网站、内容区百科、内容区搜索服务
为了方便扩展,不同的站点都由不同的域名划分,同时也运行在不同的应用程序池当中。需要注意的是,Web服务器不会存储任何有关共享资源和用户 的相关数据,所有资源都是通过绝对路径访问其它服务器上的内容,这样就方便以后为某个站点或服务增加负载均衡。有关负载均衡可以通过软件(Nginx)、 硬件(F5) 或DNS轮循等几种方案来实现,因为硬件比较贵,所以我们在内部针对Nginx做过测试,在分离以上站点时,可以正常运行。很多大型站点是采用“混合型负 载均衡”——以上几种方案都会使用。如果考虑到今后会使用负载均衡,在初期架构时,就要首先解决所有和状态有关的问题,比如用户登陆和验证码状态,在我们 SNS区架构时,就要考虑采用专门的状态服务器来存储这些内容。
301跳转:很多网站都会申请一些保护域名,并把这些域名转向到主域名上,我们的解决方案是在IIS上建立多个空站点,然后设置所有请求都转向到主域名站点上。
下面分享一些关于IIS7配置方面的资料:
- 错误页设置:如果采用“集成模式”,一定要把网站错误地址写成绝对地址,比如(http://stat01.xxx.com/404.html),如果网站启动过程发生错误,这时就会导致错误死循环。
- 启用动态压缩(GZIP):http://www.cnblogs.com/ntwo/archive/2011/01/10/1932081.html
- 多个进程处理一个应用程序池设置:WebGardens 特别功效:降低CPU占用、Web Farm和Web Garden的区别?
- IIS默认连接数设置:让Windows Server 2008 + IIS 7+ ASP.NET 支持10万个同时请求
- 权限设置:http://www.cnblogs.com/limshirley/archive/2011/05/17/2049039.html
- IIS7教程:http://msdnwebcast.net/webcast/8/1970/