最近在研究自动化部署这方面的东西,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. 是因为常规的配置可以直接配置,其他的都需要加上类别。
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。