IIS 应用程序池


Warning: Undefined array key "HTTP_REFERER" in /www/wwwroot/prod/www.enjoyasp.net/wp-content/plugins/google-highlight/google-hilite.php on line 58

1.静态站点用DW设计好后,本地即可查看网页,而动态站点则不同,需要用iis挂接后才能查看。这也是HTML(静态站点)和ASP(动态站点)的不同点之一:HTML不需要调用内存和cpu进行换算,而ASP需要调用内存和cpu进行换算后方可呈现在用户面前。因为ASP需要把程序的代码翻译成服务器可以识别的1和0,再通过IIS的导出生成HTML代码。
2.HTML,对于服务器端几乎无任何负载,因为是直接输出到客户端,客户端的浏览器(如IE)即系HTML代码后,输出成我们所见到的漂亮的网页排版、界面。ASP,服务器端需要分配内存用以解析程序代码成计算机代码,从而输出HTML代码到客户端,最后客户端的IE解析HTML代码成为我们看到的漂亮界面。ASP比HTML多出了一部,服务器对程序代码的处理。

3.应用程序池就是可以看成装载计算机分配给动态网站的内存的容器。如果内存是水,那么应用程序池就是鱼缸,动态网站就是鱼缸中的金鱼。多个动态网站可以存在于同一个应用程序池里,即鱼缸中可以放多条金鱼。当然,如果金鱼多了,鱼缸中的空间有限,金鱼之间就会争抢空间,不是很坚固的鱼缸可能就会破裂,所有金鱼都会受到影响。即是动态网站多了,内存不足,可能会造成内存级别的溢出漏洞,影响所有在那个应用程序池上的动态网站。

4.一般一个动态网站,需要新建一个应用程序池,来分配内存和cpu资源,而不是多个网站存在于同一个应用程序池中。这样做的好处是一个应用程序池对应唯一一个进程,一个进程对应一个PID(在任务管理器中可以查到)。所以如果某个网站出了问题,占用很多cpu,在任务管理器中可以查到。若是多个网站共享一个应用程序池,那么就不能定位是哪个网站出问题了。所以服务器中一般一个网站对应一个应用程序池,当然这要内存足够大作为前提条件。

5.一般而言,内存不是很大的情况下是用一个应用程序池对应多个网站的,共享内存资源可以节约服务器内存。

6.IIS设计的时候,考虑到应用程序可能会在运算途中出错,导致后续的请求不能处理。所以,IIS的应用程序池是有一个自动回收的机制。右键属性可以看到。回收的时候,原来鱼缸的水(内存的数据)会倒掉,重新换新的。

7.当一个IIS服务,只提供一个“站点”(使用80端口),不需设置主机头。
当一个IIS服务,提供n个“站点”(公用80端口),则需要设置n-1个主机头。
当一个IIS服务,提供n个“站点”(各个站点有自己的端口,各不相同),不需设置主机头。
(主机头可以理解为网站的域名)