2、还有一个就是它的FTP,在2008上面默认是没有最新版FTP安装的,如果你安装了IIS7.0,那么,你在IIS7.0里面是无法使用FTP6.0版本的,它只能配合以前老版本的IIS来使用,比如和IIS6.0搭配起来使用,如果你想要安装最新的FTP7.5,可以到微软的官网上去下载,下载的地址是http://www.iis.net/download/ftp(在这里,你可以选择你要下载X86还是X64的),也许你在安装IIS7.5的时候会发现安装不上,会报一个版本冲突的错误,这是因为你之前在安装IIS的时候,勾选了FTP服务,它这个FTP服务的版本是6.0的,所以你需要将先将这个FTP6.0的版本卸载掉才能安装FTP7.5
二、安装IIS
1、打开控制面板的程序和功能,然后点击打开或关闭windows功能,在弹出的服务管理器里面点击角色,添加角色
2、没说的,点下一步
3、在弹出的方框里勾先WEB服务器(IIS)
4、继续点击下一步
5、接下来,它会出现IIS需要安装的一些必要组件,我在这里就将“应用程序开发”和安全性下面的“基本身份验证”以及“windows身份验证“也勾选上,注意,它默认是安装IIS6.0和FTP6.0的服务的,
6、然后点下一步,在点安装
7、安装完后,就可以了,到角色里面就会看到“WEB服务器(IIS)“这个角色了
8、接下来,在管理工具里面找到“internet信息服务(IIS)管理器“打开它,就看到如下的界面了
9、如果现在想发发一个网页,那么我先将我的网页文件放好,比如说现在我在C盘里面放一个test的文件夹,然后在里面随便建立一个网页,名字就叫index.htm,然后在IIS控制台里面找到网站,右健,添加网站,在这里,网站名称我输入:test,物理路径就选择我刚才放网页文件的那个物理路径,C盘下的test文件夹,然后在下面的绑定栏里的IP地址我就选择我服务器的IP地址192.168.10.1,在点确定就可以了,test站点建立好后,有可能发现test这个站点无法使用,上面打了一个叉,没关系,将这个站点重新启动一下就可以了(选中这个站点,右健,管理网站,重新启动)
10,此时在在IE里面输入网址:http://192.168.10.1看一看情况,发现OK
11、这里有几个地方需要注意的是,
A 、如果你想修改网站的绑定的IP地址,你可以选中站点,然后右健,有一个编辑绑定,可以在这里修改IP地址
B、如果你想添加、删除或移动网页首页文件名,可以在网站右边有一个默认文档里面修改
C:\WIN2003\system32\LogFiles\HTTPERR 文件夹下有许多的小文件 一个正好是 1024KB 文件名是httperr****.log 这样格式的文件。
在IIS 6.0中,记录日志的功能已经改为由http.sys实现,http.sys在内核模式下运行。这一改进加快了日志写入速度,同时避免了多个工作进程争用同一日志文件。某些特殊的情况下,http.sys会遇到错误,这时它应该但却不能将日志信息写入Web网站的日志,例如,工作进程正在被回收,禁止http.sys处理用户请求,或者用户试图连接到服务器,但请求中只提供了IIS所需信息的一部分。如果出现这类情况,http.sys将把事件写入一个新的日志文件httperr.log。
在排解故障、优化IIS 6.0的过程中,httperr.log日志文件是十分重要的。默认情况下,httperr.log文件保存在\system32\logfiles目录。在httperr.log日志文件中可以找到的信息包括:所有的503(服务不可用)错误,空闲连接超时,解析URL时出现的各种错误,最后10个提交给失败的应用程序池的请求。
IIS 6.0还拥有一种称为二进制日志的功能,启用这个功能后,IIS 6.0将把Web网站的所有日志信息写入一个二进制格式的日志文件,日志文件的扩展名是.ibl。要启用二进制日志功能,只要把配置文件的W3SVCC/CentralBinaryLoggingEnabled条目设置成ture(1)即可。对于ISP来说,这个功能应该非常有用。ISP的每台机器上可能有1000甚至更多的Web网站,如果每个Web网站每天生成一个日志文件,日志文件的总数很快会达到一个天文数字。微软最近发布的Log Parser 2.0工具能够读取二进制日志文件并生成报告,这个工具可以从http://download.microsoft.com/download/iis50/utility/2.0/nt5xp/en-us/setup.exe下载。Log Parser 2.0还能够读取前面介绍的httperr.log文件并生成报告。
解决方案
如果您检查 C:\Windows\system32\LogFiles\HTTPERR\httperr*.log 文件在父 SUS 服务器, 您会将可能看到 Timer_MinBytesPerSecond 错误或 Timer_ConnectionIdle 错误。 这些是由 IIS 默认设置, 内其元数据库, 定义用于连接到保持活动小通信流速率和最大空闲时间之前连接中断允许。
1) 从 IIS 管理器右键单击 Internet Information Server (IIS) 管理器级别根目录上并转到属性。 选中要启用直接编辑元数据库框。 单击确定。
在记事本中打开 C:\Windows\system32\inetsrv\MetaBase.xml 文件 2)。 要搜索有关 " MinFileBytesPerSec "。 将用于 MinFileBytesPerSec 设置从 240 更改为 0。 执行其他搜索, 该时间将 600 " ConnectionTimeout "。 保存更改并退出。
3) 重新启动 IISAdmin 服务以更改生效。
一、关闭IIS HTTPRERR日志功能
默认情况下,2003服务器会把所有IIS访问错误的记录写入 C:\WINDOWS\system32\LogFiles\HTTPERR 下的 log 文件中,如果访问量比较大,可能一段时间后 日志文件可能会占满C盘空间,导致服务器死机
同时因为要写入所有的IIS访问记录,如果访问量较大会大大增加服务器CPU占用率
关闭HTTPERR的方法
运行里输入 regedit 进入注册表编辑器
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\HTTP\Parameters]
在右边 点鼠标右键 新建dword值 EnableErrorLogging 重新启动服务器就可以了
"EnableErrorLogging"=dword:00000000
重起后,2003不再写入HTTPERR日志文件,可以看到服务器CPU占用明显下降!
二、修改存储目录也不失为一个好的办法
寻找:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\HTTP\Parameters
在下面建立一个字符串值.即REG_SZ
数值名称 命名为: ErrorLoggingDir
数值数据 为你指定的路径 比如 D:\logofilse
w3wp.exe是在IIS(因特网信息服务器)与应用程序池相关联的一个进程,如果你有多个应用程序池,就会有对应的多个w3wp.exe的进程实例运行。这个进程用来分配大量的系统资
今天研究了一下,可以做以下配置:
1、在IIS中对每个网站进行单独的应用程序池配置。即互相之间不影响。
2、设置应用程序池的回收时间,默认为1720小时,可以根据情况修改。同时,设置同时运行的w3wp进程数目为1。再设置当内存或者cpu占用超过多少,就自动回收内存
一般来说,这样就可以解决了。但仍然会出现个别网站因为程序问题,不能正确释放。
那么,怎么样才能找到是哪一个网站的?
1、在任务管理器中增加显示pid字段。就可以看到占用内存或者cpu最高的进程pid
2、在命令提示符下运行iisapp -a。注意,第一次运行,会提示没有js支持,点击确定。然后再次运行就可以了。这样就可以看到pid对应的应用程序池
3、到iis中察看该应用程序池对应的网站,就ok了。
最近公司服务器总出现CPU100%占用情况,服务器配置为双核Xeon3.0×2,2G ECC内存。
发现是w3wp.exe长时间占用大量CPU.出现这种情况应该是网站程序存在死循环等问题所致。
在找到问题以前可以暂时采取限制w3wp进程CPU使用率的方法保证网站可以将就着工作:
在IIS6下,经常出现w3wp.exe的内存及CPU占用不能及时释放,从而导致服务器响应速度很慢。
解决CPU占用过多:
1、在IIS中对每个网站进行单独的应用程序池配置。即互相之间不影响。
2、设置应用程序池的CPU监视,不超过25%(服务器为4CPU),每分钟刷新,超过限制时关闭。
根据w3wp取得是哪一个应用程序池:
1、在任务管理器中增加显示pid字段。就可以看到占用内存或者cpu最高的进程pid
2、在命令提示符下运行iisapp -a。注意,第一次运行,会提示没有js支持,点击确定。然后再次运行就可以了。这样就可以看到pid对应的应用程序池。(iisapp实际上是存放在 C:windowssystem32目录下的一个VBS脚本,全名为iisapp.vbs,如果你和我一样,也禁止了Vbs默认关联程序,那么就需要手动到该目录,先择打开方式,然后选“Microsoft (r) Windows Based Script Host”来执行,就可以得到PID与应用程序池的对应关系。)
3、到iis中察看该应用程序池对应的网站,就ok了,做出上面的内存或CPU方面的限制,或检查程序有无死循环之类的问题。
解决内存占用过多,可以做以下配置:
1、在IIS中对每个网站进行单独的应用程序池配置。即互相之间不影响。
2、设置应用程序池的回收时间,默认为1720小时,可以根据情况修改。再设置当内存占用超过多少(如500M),就自动回收内存。
我的设置如下:
首先是对CPU的限制:在启用cpu监视后,我设置该应用程序池最大的cpu使用率为50%。设置刷新cpu时间为1分钟,设置操作为“关闭”。最大工作进程数设置为1。这个意思是,IIS刷新检测该独立池的CPU使用情况时间为1分钟,如果超过设置的cpu限制50%,就会发出关闭池的指令,要求池在指定的时间内关闭。如果池成功在这个时间内关闭,IIS会重启动一个新池,此段时间很短,一般不会有什么感觉,池就重新开启了,对于访问网站的人基本是不会有感觉的。但如果池没有在指定时间内关闭,IIS就会强行关闭它一个刷新CPU时间。在这个停止的时间内,网站无法访问,提示“Service Unavaliable”。
关闭时间和启动时间间隔设置:设短一些比如10秒,这样当您的网站程序大量占用系统资源时IIS自动快速回收进程并且快速启动进程,您的网站暂时还可以将就着工作。
对内存的限制及进程回收时间的设置:我设置为内存占用超过800M就自动回收内存,虚拟内存没有做限制。进程回收时间我保持默认没有修改。各位可以根据自己的情况设置更短的时间。对应用程序池最大虚拟内存也可以在此进行设置,超过了设置的最大虚拟内存,该池会就被回收。