簡體   English   中英

nginx 入口控制器記錄 499

[英]nginx Ingress controller logs 499

我有一個 azure Kubernetes 集群,部署如下所示。 我有一個長時間運行的 api,需要大約 2 分鍾才能完成。 有時在 kubernetes POD 上處理請求時,nginx 入口控制器會記錄一個錯誤,狀態碼為 499。根據 nginx 日志,499 是客戶端關閉的連接。 我已將 nginx 超時設置為 10 分鍾(用於測試)。 我想了解這里 nginx 的客戶端是誰。 是應用負載均衡器還是應用POD? 請注意底層 .NET core Api 繼續處理請求

日志:

[10.XX.XX.5] "POST /test HTTP/1.1" 499 0 " https: //test.test/ " 2345 120.601 [default-test-service-80] 10.xx.xx.xx:80 0 120.603

在此處輸入圖片說明

要了解日志的含義,您需要知道它是如何定義 Nginx 的日志格式的。 所以你可以進入 Nginx 入口的 pod 並查看 Nginx 的配置,它顯示如下:

log_format upstreaminfo '$remote_addr - $remote_user [$time_local] "$request" $status $body_bytes_sent "$http_referer" "$http_user_agent" $request_length $request_time [$proxy_upstream_name] [$proxy_alternative_upstream_name] $upstream_addr $upstream_response_length $upstream_response_time $upstream_status $req_id';

您可以找到有關 Nginx 如何以日志格式定義變量的文檔。 文件在此處描述:

$remote_addr - x.x.x.x - The IP address of the client making the request.

在您的確切日志中,遠程地址是“10.XX.XX.5”。 它是托管 Nginx 入口 pod 的 AKS 節點的 IP 地址。

A.這里 Nginx 的客戶端是托管 Ningx Ingress pod 的 AKS 節點。

最后,我認為,請求的路由路徑是 AGW -> ALB -> AKS_node -> Nginx_ingress_controller -> service -> application_pod。

檢查您的應用程序網關超時

HTTP 設置 > 您的設置名稱 > 請求超時(秒)

暫無
暫無

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

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