apisix 400問題修復

背景:已知道 upstream 校驗Host
現(xiàn)象: client-->apisix:http://xxx:9080-->upstream https://xxx:443 報400錯誤,確定400錯誤是upstream返回的

原因:apisix往upstream上游轉發(fā)的時候會攜帶以下頭部,例如:"X-Forwarded-Host": "x.zone" ,如果不在apisix route配置中手動指定:X-Forwarded-Host值,apisix會把自己的ip加到X-Forwarded-Host,源站校驗X-Forwarded-Host!=x.zone不通過就返回400

image.png

經(jīng)驗:apisix會自己生成很多頭部信息攜帶去和源站建立連接,在使用apisix代理時如果遇到錯誤,有可能是apisix帶的頭部和預期不符,需要抓包比對請求頭部的差異,如果源站無法抓包,在源站和apisix中間加個nginx代理,在nginx代理上抓包(模擬源站收到apisix請求,看nginx日志不完全準確)

  "plugins": {
    "proxy-rewrite": {
      "headers": {
        "set": {
          "Host": "0.zone",
          "X-Forwarded-Host": "0.zone"
        }
      },
}
最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內(nèi)容