最近在研究自动化部署这方面的东西,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 这个就要加两个头才能够。linux
四. 配置应用池属性
一、先查看一下当前默认应用池的配置信息
Appcmd list apppool "DefaultAppPool" /text:*
Appcmd set apppool "DefaultAppPool" /queueLength:65535 #这是修改队列长度,是iis优化中必不可少的。
Appcmd set apppool "DefaultAppPool" /cpu.limit:2 #这里多了一个cpu. 是由于常规的配置能够直接配置,其余的都须要加上类别。windows