0
点赞
收藏
分享

微信扫一扫

烂笔头笔记:favicon配置不是所有浏览器都兼容


一则故障告警

为了保证服务正常运行,在所有应用系统中都接入了日志收集系统,该系统还可以将一段时间内的错误信息聚合,发送故障告警。以下是告警内容:

[日志监控]XX-mweb状态码500告警
你有1条延迟发送报警消息,最近一条是:
[2019-05-14 13:50:19]
nginx.m.somebusiness.com最近5分钟内有状态码为500日志319条.
最近一条请求记录为:
URL:/favicon.ico
主机:192.168.0.1
参数:
状态码:500

详细请看:http://short.cn/M4Gmznc

*注:告警日志中涉及到敏感信息的内容已经做了脱敏处理

检查页面

通过日志中反应的域名可以很明显地看出,该错误是nginx日志(日志系统很明确地划分nginx日志和业务系统日志使用不同域名),并非业务系统日志。但是一个favicon.ico的请求怎么会打到业务系统里呢(nginx日志很少单纯出现500错误,一般是反向代理到业务系统时,由业务系统返回产生)?

在页面中,head部分有明确的配置:

<link rel="shortcut icon" href="//x.shortimg.cn/business/2019/m/images/favicon.ico">

按照此配置,浏览器在页面加载时使用的favicon应该采用这个上述配置才对。后来进入日志系统,查看造成这些错误的UA是哪些,发现绝大多数来源于这样一个UA:

Mozilla/5.0 (Linux; Android 7.1.1; OPPO R11s Build/NMF26X; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/55.0.2883.91 Mobile Safari/537.36 incapp/1.1+%28inc_android%3B9.10.0%3BFAcDIW0xtK-GggDvLvbA-L7iSIpoFl-qb4G_JUwc_xwKT14MCz4zWVtzk8oK0IuI%3B7.1.1%3BOPPO%2BR11s%3B79cef6477b23629a2c264fe8019232d1%29 inc_android/9.10.0 nettype/4g

也就是说这样一个环境是不支持favicon设置的:
系统:Android 7.1.1
品牌型号:OPPO R11s
打开环境:(公司开发的移动端产品,内部版本号9.10.0)

解决方法

将该业务系统对应域名下的favicon.ico请求直接转发到指定的地址下,从此世界安静了。


举报

相关推荐

0 条评论