簡體   English   中英

節點上游和http2的nginx 499錯誤

[英]nginx 499 errors with node upstream and http2

最近我們已經將apache切換到nginx,並為我們的Web應用程序提供了http2支持,我們看到了很多499錯誤。

我們的設置:

  • 在Amazon AWS上運行的Ubuntu機器
  • Nginx / 1.9.12作為節點應用程序的代理(和ssl卸載)(同一台機器)
  • 客戶端的單頁應用程序

我最初的想法是客戶只是關閉他們的瀏覽器,但從日志中,我看到~95%的客戶端還活着,並且在獲得499后有請求。

http2的499個錯誤中有55%發生,http1.1版本的錯誤發生率為45%,因此這里沒有任何趨勢。 80%的請求來自移動設備(連接錯誤?)

但特別擔心的是,有一個端點可能需要5-15秒才能完成(PUT請求)。 對於該端點:

  • 499個錯誤中約有95%用於http2版本
  • ~95%的請求來自移動設備
  • 幾乎所有客戶端都還活着(我們從日志中看到,因為失敗后請求客戶端javascript向另一個端點發出另一個請求)
  • 沒有時間模式 - 有時客戶在0.1秒之后獲得499,有時3-9秒
  • 日志不表示上游節點有任何問題,這種情況經常發生,並且沒有重負載。

我已經嘗試將keepalive添加到上游,並啟用proxy_ignore_client_abort ,但這似乎沒有幫助。

任何提示如何解決這個問題?

我正在閱讀這個未回答的問題這個問題表明,一個潛在的來源是來自不耐煩的客戶點擊刷新按鈕。

這似乎與您對客戶活着的觀察結果一致,並且在獲得499后有請求

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM