1. 程式人生 > 實用技巧 >nginx代理引發一些問題

nginx代理引發一些問題

前言

直接說遇到的問題吧

第一個問題:response body內容被截斷,本來的返回值是一個json,但是實際返回值被截斷了,說起來太抽象,直接給出例子:

本來應該是正確的返回值

{
  "key1": "value1",
  "key2": "value2",
  "key3": "value3",
  "key4": "value4",
  "key5": "value5"
}

但是實際的返回值變成了這個樣子

{
  "key1": "value1",
  "key2": "value2",
  "key3": "value3",
  "key4": "value4"

變成了一個殘缺的json,無法解析

第二個問題:server端tomcat報錯 org.apache.catalina.connector.ClientAbortException: java.io.IOException: Broken pipe

本來以為是服務端處理時間過長導致客戶端提前斷開連線導致的,網上搜了一下也是大把的這種答案,但是試了很多種方法都沒有重現該問題。

貼一下在排查問題的過程中遇到的我覺得說的比較清楚的一篇部落格:https://www.cnblogs.com/metoy/p/6565486.html 博主重現了該異常,但是對我實際的排查問題還是沒有帶來太大的幫助

排查思路

首先說第一個返回值截斷的問題:

現象是前端拿到的返回值是被截斷的,於是直接呼叫了後端的介面,呼叫了很多次很多次。。。沒有一次重現返回值被截斷的現象。既然這樣,那大概率就是中間的傳輸鏈路出了問題。

我們的大致鏈路是: browser -- nginx代理 -- server端,大概率問題就出現在了nginx代理上