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;
        }

 

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