IIS自动化部署研究--管理工具Appcmd

  • 来源:网络
  • 更新日期:2020-07-11

摘要:系统运维 最近在研究自动化部署这方面的东西,linux可以使用jenkins和ansible直接部署,windows方面有点少,在搜索过程中发现了appcmd这个工具

系统运维

最近在研究自动化部署这方面的东西,linux可以使用jenkins和ansible直接部署,windows方面有点少,在搜索过程中发现了appcmd这个工具。appcmd作为windows IIS7.0之后新增的管理命令,功能非常强大,关键是修改完是直接生效的。
工具默认位置在:%systemroot%\\system32\\inetsrv\\ 下,也就是在C:\\Windows\\System32\\inetsrv\\下。微软没有把它内部命令表中,需要文件目录下才能运行。如果要直接运行appcmd命令,需要将在环境变量下系统变量的path中添加路径即可。
一. 创建网站
创建一个名为123的新网站,其中id是2,侦听所有ip地址的81端口,当然可以自行设置成ip,端口后面是跟主机名或者域名的,当然可以不加,端口后面的冒号是必须要加的,要不然端口不会生效的。 physicalpath是已存在的目录的位置。
根据官方的说明,name是必须指定的,id是随意,不指定会自动按照当前已存在的后延生成的,主机名也可以随意。
Appcmd add site /name:123 /id:2 /bindings:http/
:81:iistest-1.tech.xyauto.com /physicalPath:D:\\site\\123
下面这个是向123中附加子站的
Appcmd add app /site.name:123 /path:/456 /phtsicalPath:D:\\site\\123\\456
如果没有指定physicalpath参数,或者希望添加另外一个虚拟目录的话,可以使用一下这个命令
Appcmd add vdir /app.name:"123/456" /path:/vdir1 /physicalPath:D:\\site\\123\\567
查看网站的属性,并以文本的形式显示出来。
Appcmd list site "123" /text:
创建网站后会关联默认的应用池,方便管理最好是创建对应的应用池。

二. 创建应用池
创建一个名为123和456的应用池,然后进行关联
Appcmd add apppool /name:123
Appcmd add apppool /name:456
Appcmd set app "123/" /applicationpool:123
Appcmd set app "123/456" /applicationpool:456 #由于456是123的子站,所以要加上主站123。
然后再查看一下应用池。

三. 配置网站属性
先查看网站的配置参数
Appcmd list site "123" /text:


修改属性命令:
Appcmd set site "123/" /traceFailedRequestsLogging.enable:true #其他的参数可以参考一下,要先看一下属于几级的属性,有的层级比较深,前面需要加不少头才行例如:ftpserver.connections.datachanneltimeout:60 这个就要加两个头才可以。

四. 配置应用池属性
1、先查看一下当前默认应用池的配置信息
Appcmd list apppool "DefaultAppPool" /text:*

Appcmd set apppool "DefaultAppPool" /queueLength:65535 #这是修改队列长度,是iis优化中必不可少的。
Appcmd set apppool "DefaultAppPool" /cpu.limit:2 #这里多了一个cpu. 是因为常规的配置可以直接配置,其他的都需要加上类别。

新网虚拟主机