开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第6天,点击查看活动详情
之前记录过一次IIS服务如何部署vue项目,有兴趣的可以看下我之前的文章,在经过一系列的操作后,终于要真正的上线了,这次就记录一下真正上线遇到的坑,就没有一次上线是顺利的0.0,都是坑壁客户.
由于本次部署涉及生产环境,所以不再贴图,保证安全,只记录排查解决问题的思路和过程.
部署IIS服务
这一步还是很顺利的,根据我之前的文章,安装urlrewrite,新建网站,配置规则...一气呵成,之后达成成就: 本地可以访问.
于是我以为就完事了,开放防火墙端口后,使用ip+端口的方式进行测试,结果就死活不行,我经过了多方位的测试,均无效.
巨坑
首先我怀疑是这台服务器是一台云服务器,安全组没开放,于是联系客户,客户反馈说这就是一台物理机,不是云服务器.
再次排查防火墙,未发现问题.
此时我想到客户这台服务器上还部署有其他服务,为啥其他服务可以访问呢? 于是绝对找一个服务查看.
首先在浏览器测试此服务器上80端口是可以正常访问的,那说明有80服务在启动,于是以80端口服务为例排查.
首先查看IIS服务中是否有80端口服务,找了一遍,发现没有开放80端口的服务,此时我觉得不对劲,按照客户的说法,这台服务器上部署的所有服务都是通过IIS部署的,那么为啥没有80端口的服务呢.
再次查找,使用windows cmd命令行查找:
nestat -ano|findstr "80"
发现有两个80服务,这更不对劲了,先取其中一个pid,打开任务管理器,进入详情信息,查看对应pid的服务是啥,一看之后,一口老血吐出来:
居然是一个nginx服务
什么是天坑,这就是了,废了那么大劲将vue项目部署到IIS上,结果居然有现成的nginx,太捞了.
而此时我还发现nginx服务启动的也有问题,应该是之前启动的时候执行了两次start nginx导致的,nginx有双份服务,勉为其难顺手帮客户杀一个.
nginx部署
既然有nginx那就简单多了,vue打包目录往nginx一放,然后配置一下nginx.conf就可以了.
其中还有一个小插曲,配置了nginx.conf映射不同的域名时,一直不生效,纠结了一段时间后发现是执行命令的问题
# 刷新配置
nginx - reload
# 重启nginx 先停止,再启动
nginx -s stop
start nginx
使用nginx -s reload无法使监听指定域名的配置生效,重启nginx则可以
总结
- 遇到问题,要多思考,有参考的例子可以顺藤摸瓜,触类旁通
- 运维的重要性,当项目失去了原来的运维人员时,特别没有文档的情况下,对于部署新项目是一个比较困难的问题,会遇到各种各样的奇葩bug.