苍穹服务启动失败,因找不到bos.xml。需检查appstore配置及访问路径。首先确认appstore地址,拼接bos.xml访问路径,通过curl测试访问。针对访问问题,如端口未开放、404错误、502错误等,分别提出解决方案,包括开放端口、安装nginx及软连接、修改nginx配置等。
苍穹服务启动,提示找不到bos.xml,导致服务启动失败。那么我们应该怎么定位问题原因呢?
首先,我们需要了解下苍穹启动过程,苍穹服务启动,第一步读取setenv.sh配置环境变量,第二步从appstore拉取苍穹的依赖包,第三步引用第二步下载的苍穹依赖包,调用服务启动。具体可查看start.sh/start.bat脚本。
既然苍穹的jar包,都是从appstore拉取的,那么日志提示bos.xml找不到,那就是appstore出了问题,我们的关注点在appstore上。
确认苍穹服务配置的appstore地址是什么,在苍穹服务bin目录下,找到setappenv.sh,查看文件找到appstore地址。
根据第三步获取到的地址,我们拼接出bos.xml的访问路径,因为bos.xml属于bos的,因此访问地址应该是APPSTORE_URL/bos/bos.xml,例如:http://127.0.0.1:8090/appstore/cosmic/bos/bos.xml
在服务后台通过curl访问第四步拼接的地址,就可以判断出是什么原因导致bos.xml下载不了。
情况分析 | 问题原因 | 解决方案 |
访问地址等待很久一直没响应 | 8090端口未开放,一般这种问题出现在云服务较多,可以通过telnet IP port命令,进一步确认。 |
|
访问返回404 | appstore不存在,安装nginx执行installnginx-appstatic.sh失败,或者没有软连接到/var目录。确认/var/appstatic下目录结构。 |
|
访问报502 | 5xx,服务器异常,确认第四步拼接的地址是否正确,nginx默认关闭索引参数,可开启参数确认地址 | 找到nginx的配置文件,搜mc.conf,修改mc.conf,找到/appstore,将autoindex_localtime和autoindex值设置为on。重启nginx即可在浏览器直接访问appstore,按目录找到bos.xml |
推荐阅读