IIS 7 提供了一个新的命令行工具 Appcmd.exe,可以使用该工具来配置和查询 Web 服务器上的对象,并以文本或 XML 格式返回输出。 下面是一些可以使用 Appcmd.exe 完成的任务的示例:
•创建和配置站点、应用程序、应用程序池和虚拟目录。
•停止和启动站点。
•启动、停止和回收应用程序池。
•查看有关在 Web 服务器上运行的工作进程和请求的信息。
Appcmd.exe 为常见的查询和配置任务提供了一致的命令,从而降低了学习语法的复杂性。 例如,您可以使用 list 命令来搜索有关对象(如应用程序)的信息,也可以使用 add 命令来创建对象(如站点)。
另外,您还可以将命令组合在一起使用,以返回与 Web 服务器上对象相关的更为复杂的数据,或执行更为复杂的任务。 例如,您可以完成类似如下任务的复杂任务:停止所有具有运行时间超过六十秒的请求的站点。
AppCmd.exe工具所在目录 C:\windows\sytstem32\inetsrv\目录下
使用命令行管理IIS 7.0时,需要使用IIS7.0提供的全新管理工具AppCmd.exe。AppCmd.exe工具可以完成web服务器的全不管理工作。利用AppCmd.exe工具,既可以通过命令行提示完成挂历工作,也可以通过脚本完成管理工作。利用AppCmd.exe工具,可以完成以下工作:
1、添加、删除、修改web网站和应用程序池
2、停止,启动web网站和应用程序池
3、观察工作进程和请求信息
4、一列表形式显示IIS和ASP.NET的配置信息,并支持对IIS和ASP.NET的配置信息进行修改
AppCmd.exe工具提供了一个一直的命令集,利用该命令集,针对受支持的对象类型,可以执行查询操作并完成一些其他任务,既可以段杜运行这些命令,也可以讲命令进行组合并欲行命令组合,从而可以执行复杂的任务,完成复杂的查询工作,如表:
对象名称 描述 site 管理虚拟网站 app 管理应用程序 vdir 管理虚拟目录 appool 管理应用程序池 config 挂历通用配置文件 wp 挂历工作进程 request 管理http请求 module 管理服务器模块 backup 管理服务器配置备份 trace 管理失效请求跟踪日志AppCmd.exe工具支持的命令:
add
clear
configure
delete
inspect
install
list
lock
migrate
recycle
reset
restore
search
set
start
stop
uninstall
unlock
AppCmd命令
温馨提示:命令总是位于对象之前,而属性总是位于对象之后,这样就可以通过创建一个类似于一条语句的结构,在这个结构中,appcmd.exe通知对象做某事。
list 列出应用程序池
set 配置应用程序池
add 添加新应用程序池
delete 删除应用程序池
start 启动应用程序池
stop 停止应用程序池
recycle 回收应用程序池
1、列出一个对象所有实例
appcmd.exe list app
2、列出独一无二的对象实例
appcmd.exe list app "Default Web Site/"
3、列出满足一定准则的对象实例
appcmd.exe list app /apppool.name:"defaultapppool"
4、列出对象的详细信息
appcmd.exe list app "default web site/"/text:*
5.列出所有XXX应用程序池的应用程序
appcmd.exe list app /text:/apppool.name:XXX
6、列出网站的配置信息
appcmd.exe list site "default web site "/config
7、更换应用程序池
appcmd.exe set app "default web site/" /applicationpool:"XXX"
8、添加新的应用程序池
appcmd.exe add apppool /name:"XXX"
9、删除应用程序池
appcmd.exe delete apppool /apppool.name:"XXX"
10、列出所有的应用程序池的详细信息
appcmd.exe list apppool
11、查询所有应用程序池状态为started的
appcmd.exe list apppools /state:started
12、关闭指定应用程序池
appcmd.exe stop appPool /appPool.name:"XXX"
13、开启指定应用程序池
appcmd.exe start apppool /apppool.name:"XXX"
14、监视当前的请求
appcmd.exe list request
request对象可以使用属性来找到特定的信息,通过使用属性,可以返回摸个运行时间(以毫秒计算)超过预设值的网站、应用程序池、工作进程、URL, 以及请求的信息。request对象所使用的属性包括:
基于网站ID的请求
appcmd.exe list request /site.id:1
基于应用程序池的请求
appcmd.exe list request /apppool.exe:DefaultAppPool
基于工作进程的请求
appcmd.exe list request /wp.name:"1044"
基于网站名称的请求
appcmd.exe list request /site.name:"Default web Site"
基于进程运行时间的请求
appcmd.exe list request /elapsed:"1000"
15.站点备份与恢复
备份站点:
appcmd.exe add backup backupname
列出备份:
appcmd.exe list backup
恢复备份
在恢复一个备份时,IIS停止运行,并且重写服务器的状态。一旦配置文件被重写,IIS随即重新启动。如果不希望IIS停止运行并重新启动,那么可以是使用/stop:false。这样,就可以在合适的时间手动停止IIS运行,并手动重新启动IIS
appcmd.exe restore backup /back.name:"XXX" /stop:false
appcmd.exe restore backup /backup.name:"XXX"
删除备份
appcmd.exe relete backup XXX
16、列出服务器的整体配置信息
appcmd.exe list config
列出默认Web网站的配置
appcmd.exe list config "Default Web Site/"
当需要显示默认web网站的配置内容时,为了减少显示内容,可以执行
appcmd.exe list config "Defaul Web Site/" /section:system.net/settings
获取所有可用节点
appcmd.exe list config -section:?
17、编辑配置节点信息
eg1: 启用全局IPv6
appcmd.exe set config /section:system.net/settings -ipv6.enabled:"true"
eg2:在全局配置中启用了IPv6,现在要在默认的web中引用IPv6
appcmd.exe set config "http://localhost" /section:system.net/settings -ipv6.enabe:"false"
列出节点集合
appcmd.exe list config /section:httpErrors
编辑节点集合
eg:把401错误页面有"401。htm"修改为"defaulterror.htm"
通过使用加号(+)或者一个减号(-)添加 活删除元素
删除503状态码
appcmd.exe set config /section:httpErrors /-[statusCode='503']
appcmd.exe set config /section:httpErrors / [statusCode='401'].path:defaulterror.htm
18、对配置进行加锁和解锁
解锁:
appcmd.exe unlock config "default web site" /section:system.web/authentication
加锁:
appcmd.exe lock config "default web site" /section:system.web/authentication
19、使用管道传送XML数据
可以在appcmd list 中使用/xml修饰符来创建复杂的任务,还可以执行大规模的批处理工作。利用/xml修饰符,可以讲一个查询的结果导出并保存到一个标准XML格式的文件中,从而使其他命令行工具或者shell命令可以使用这个XML文件。例如,为了列出所有已启用的应用程序池,并将信息保存到一个标准的XML文件中,执行以下命令:
appcmd.exe list apppool /state:started /xml
IIS 备份还原命令如下:
开始-运行-CMD
进入IIS目录
cd c:\windows\system32\inetsrv
============================
备份命令
appcmd add backup "备份名"
备份后文件目录在:C:\Windows\System32\inetsrv\backup
===========================================
还原命令
appcmd restore backup "备份名"
===================================================
查看备份
appcmd list backup
1.前期准备
想要测试SQUID是否正常,必须要先把www.naizhao.com这个域名解析到2.2.2.2这个IP上。跟上一章一样,如果你是网通用户就不需要做任何操作,DNSPod会给你返回2.2.2.2这个IP。如果你是电信用户,或者解析出来的IP不是2.2.2.2,那么就要修改系统的hosts表,对应记录添加进去。跟上一章不一样,上一章修改的是SQUID服务器的hosts表,你现在需要修改的是你用来测试SQUID的系统的hosts表。
除了修改hosts表外,我们还需要一个名为curl的小工具。一般的Linux/Unix系统都附带了这个工具,如果使用Windows,那么需要到下面的地址下载一个,并且放到D:(或者其他地方,自己喜欢)。
http://curl.haxx.se/latest.cgi?curl=win32-nossl(32位系统)
http://curl.haxx.se/latest.cgi?curl=win64-nossl(64位系统)
下载回来解压后,我们只需要一个curl.exe。
2.运行SQUID
我们继续用上一章的方法,用调试方式启动SQUID
cd /usr/local/SQUID/sbin
./SQUID -Nd 1
然后打开浏览器,输入http://www.naizhao.com,看输出的网页是否正确。
如果能显示出正常的页面,那么说明SQUID已经正常运行了。但我们还需要确认一下,所需要的页面是否已经被SQUID缓存了。
3.测试SQUID
我们使用curl,输入下面的命令(Windows用户请使用命令行来运行curl)
curl -I http://www.naizhao.com/
HTTP/1.0 200 OK
Date: Sun, 08 Jul 2007 12:16:27 GMT
Server: NaiZhao Web Server/1.0.0
Last-Modified: Wed, 13 Dec 2006 06:11:14 GMT
ETag: "7665b-1983-4417e480"
Accept-Ranges: bytes
Content-Length: 6531
Vary: Accept-Encoding
Content-Type: text/css
Age: 29155
X-Cache: MISS from cnc.naizhao.com
Via: 1.0 cnc.naizhao.com:80 (SQUID/2.6.STABLE13)
Connection: close
我们留意输出的内容,下面一行内容表示并没有命中缓存。也就是并不是从缓存中读取所需文件。一般第一次访问一个文件的时候,出现MISS是正常的,因为本来文件就不存在于缓存中。
X-Cache: MISS from cnc.naizhao.com
然后,我们重新运行一次命令,继续看输出的内容
curl -I http://www.naizhao.com/
HTTP/1.0 200 OK
Date: Sun, 08 Jul 2007 12:16:27 GMT
Server: NaiZhao Web Server/1.0.0
Last-Modified: Wed, 13 Dec 2006 06:11:14 GMT
ETag: "7665b-1983-4417e480"
Accept-Ranges: bytes
Content-Length: 6531
Vary: Accept-Encoding
Content-Type: text/css
Age: 29155
X-Cache: HIT from cnc.naizhao.com
Via: 1.0 cnc.naizhao.com:80 (SQUID/2.6.STABLE13)
Connection: close
可以看到,这次的输出已经是HIT了。也就是表示,内容是从缓存中读取的。
如果第二次访问仍然是MISS,那么你就要检查下网页是否限制了缓存。可以从下面几个方面入手:
Last-Modified: Wed, 13 Dec 2006 06:11:14 GMT 检查这行是否每次访问都变化。如果一直变化,说明页面是动态的,并不合适SQUID缓存。SQUID在每次请求的时候都会检查这行,判断页面是否已经过期,并且对过期的页面重新获取。
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0 这行是负责控制缓存。no-store、no-cache、must-revalidate等都是要求SQUID禁止缓存内容,并且在每次请求的时候都去验证页面是否过期。
Expires: Thu, 19 Nov 1981 08:52:00 GMT 过期时间如果大于当前时间,也会被认为是页面已经过期,需要重新获取。这样的页面也不会被缓存。
Pragma: no-cache 这句也是禁止缓存。
大家可以按照上面的内容进行自查自纠,根据实际需求对网站进行修改即可。
确认没有问题后,我们就可以让SQUID正式跑起来了。
4.正式运行SQUID
ulimit -Hs 65536
ulimit -n 65536
./SQUID
直接使用上面的命令就可以让SQUID跑起来了。
跑起来后,输入http://www.naizhao.com看看访问是否正常。
5.让SQUID跟随系统启动
CentOS让SQUID跟随系统启动很简单,只需要编辑/etc/rc.local,在最后加上下面内容即可
ulimit -Hs 65536
ulimit -n 65536
/usr/local/SQUID/sbin/SQUID