favicon.ico请求超时问题

今日工作排查一个问题,门户页面打开很慢,排查发现 nginx 有如下日志:
access 日志:

time=16/Jun/2020:16:28:06 +0800||rmip=*.*.*.*||upaddr=1.1.1.1:33200||upstatus=504||reqtime=60001.196||uprep_time=60.001||Cache=-||body_bytes=576||req=GET /favicon.ico HTTP/1.1||status=504

error日志:

2020/06/16 14:13:12.806141 <ngx_http_upstream.c:4887>  [error] 301#301: *81244672 upstream timed out (110: Connection timed out) while connecting to upstream, client: *.*.*.*, server: localhost, request: "GET /favicon.ico HTTP/1.1", upstream: "http://1.1.1.1:33200/favicon.ico", host: "*.*.*.*:31443", referrer: "https://*.*.*.*:31443/**/**/**.jsp"

排查门户发现,并没有自主发起 /favicon.ico 请求,网上查找资料了解到:

浏览器在请求页面前会自主发起/favicon.ico请求,获取网页图标,就是如下截图红框中所展示的标记:

由于版本有配置如下的通用匹配location和回源配置,导致请求被转发到:1.1.1.1:33200,导致超时

    upstream web{
        ip_hash;

        server 1.1.1.1:33200 max_fails=5;

        keepalive 1200;
    }
...
        location /            <-- 优先级最低,匹配任意请求
        {
            proxy_pass http://web;
        }

解决方法,加上如下配置,暂时规避:

        location /favicon.ico {
            return 404;
        }

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章