為路由器啟用 NGINX 偵錯記錄

查看 Apigee Edge 說明文件。
前往 Apigee X說明文件
資訊

在 Apigee 中,路由器會設定為僅記錄錯誤記錄檔中的錯誤訊息 預設值。不過在許多情況下,您可能需要收集更多資訊, 判斷發生特定錯誤的原因。其中一個方法是設定路由器 在偵錯模式下運作,方便您取得偵錯記錄檔,有助您取得更多資訊 並更快解決問題

本文件說明如何在 Apigee Edge 的路由器上為 特定的虛擬主機您可以啟用偵錯記錄功能,隨時擷取更多資訊 格式錯誤等問題 400 不正確的要求 - SSL 憑證錯誤北行 (在用戶端應用程式與路由器之間)。

事前準備

  • 如果您不熟悉 NGINX 錯誤記錄和記錄層級,請參閱 NGINX 錯誤記錄檔說明文件
  • 收集 API 請求的機構、環境和虛擬主機名稱 您必須收集偵錯資訊

在路由器上啟用 NGINX 偵錯記錄檔

本節說明如何在 Edge Router 上啟用偵錯記錄。

找出相關的虛擬主機設定檔

下列步驟說明如何找出路由器上的相關虛擬主機設定檔:

  1. 如果您知道特定 API 的機構名稱、環境名稱和虛擬主機 然後傳送要偵錯的請求 確定虛擬主機的衝突檔案,如下所示:
    1. 前往 /opt/nginx/conf.d/ 目錄。
    2. 搜尋檔案 ORG_NAME_ENV_NAME_VIRTUALHOST.conf 複製到 conf.d 目錄中:
      ls -ltrh | grep "ORG_NAME_ENV_NAME_VIRTUALHOST_NAME"
      
  2. 如果您不知道機構名稱,可以找出虛擬主機設定 方法是使用在 API 要求中使用的主機別名名稱,如下所示:

    前往 /opt/nginx/conf.d/ 目錄並搜尋 hostalias (使用下列指令提出要求):

    ls -ltrh | grep -r 'HOST_ALIAS_NAME'
    

    輸出內容範例:

    假設主機別名名稱為 opdk.cert-test.com,當您執行 ls -ltrh 指令之後,您會看到以下輸出內容:

為路由器上的特定虛擬主機啟用偵錯記錄功能

下列步驟說明如何在 Apigee 路由器上,針對特定裝置啟用偵錯記錄檔 虛擬主機

  1. 在編輯器中開啟路由器機器上的下列檔案: /opt/nginx/conf.d/ORG_NAME_ENV_NAME_VIRTUALHOST_NAME.conf。 例如:
    vi /opt/nginx/conf.d/ORG_NAME_ENV_NAME_VIRTUALHOST_NAME.conf
    
  2. 變更下列程式碼:
    error_log /opt/apigee/var/log/edge-router/nginx/ORG_NAME~ENV_NAME.PORT_error_log error;
    

    error_log /opt/apigee/var/log/edge-router/nginx/ORG_NAME~ENV_NAME.PORT_error_log info;
    
  3. 儲存變更。
  4. 執行 NGINX 重新載入指令。例如:
    sudo /opt/nginx/scripts/apigee-nginx reload
    
  5. 下列檔案現在會擷取 debug 記錄:
    /opt/apigee/var/log/edge-router/nginx/ORG_NAME~ENV_NAME.PORT_error_log
    
  6. 如要在多個路由器上擷取偵錯記錄檔,請在每個 路由器

確認偵錯資訊是否已記錄在 NGINX 錯誤記錄檔中

  1. 用戶端在與虛擬主機相關聯的主機別名和通訊埠上提出 API 要求後 設定、偵錯記錄,系統會在下列檔案中擷取:

    /opt/apigee/var/log/edge-router/nginx/ORG_NAME~ENV_NAME.PORT_error_log

  2. 確認畫面顯示 API 要求的偵錯資訊,如以下範例所示:

    偵錯資訊範例:

    2021/01/27 02:48:40 [warn] 27624#27624: *3777 a client request body is buffered to a temporary file /opt/apigee/var/log/edge-router/nginx/client_temp/0000000001, client: XX.XX.XX.XX, server: XX.XX.XX.XX, request: "POST /post-no-target HTTP/1.1", host: "XX.XX.XX.XX:443"
    

    當用戶端以含有以下內容的 POST 要求傳送 POST 要求時,系統會擷取上述資訊 大型酬載只有在啟用偵錯記錄功能時,系統才會顯示這個記錄。

  3. 如果沒有看到其他偵錯資訊,請確認您已確實遵守所有 步驟,如所述 正確為路由器上的特定虛擬主機啟用偵錯記錄功能。如果 錯過任何步驟,請再次正確重複所有步驟。
  4. 如果還是無法取得偵錯資訊,請與 Apigee Edge 支援團隊聯絡。

停用路由器上特定虛擬主機的偵錯記錄檔

本節說明如何針對特定虛擬主機停用路由器的偵錯記錄檔。

  1. 在編輯器中開啟路由器機器上的下列檔案: /opt/nginx/conf.d/ORG_NAME_ENV_NAME_VIRTUALHOST_NAME.conf 例如:
    vi /opt/nginx/conf.d/ORG_NAME_ENV_NAME_VIRTUALHOST_NAME.conf
    
  2. 變更下列程式碼:

    error_log /opt/apigee/var/log/edge-router/nginx/ORG_NAME~ENV_NAME.PORT_error_log info;
    

    error_log /opt/apigee/var/log/edge-router/nginx/ORG_NAME~ENV_NAME.PORT_error_log error;
    
  3. 儲存變更。
  4. 執行 NGINX 重新載入指令。例如:
    /opt/nginx/scripts/apigee-nginx reload
    
  5. 下列檔案現在只會擷取 error 記錄:
    /opt/apigee/var/log/edge-router/nginx/ORG_NAME~ENV_NAME.PORT_error_log
    
  6. 如要停止多個路由器的偵錯記錄檔,請在每個 路由器

僅驗證錯誤資訊會記錄在 NGINX 錯誤記錄檔中

  1. 在與特定虛擬主機相關聯的主機別名和通訊埠上提出一些 API 要求 或等待用戶端提出要求。
  2. 檢查下列檔案: /opt/apigee/var/log/edge-router/nginx/ORG_NAME~ENV_NAME.PORT_error_log
  3. 確認您只看到錯誤資訊,且偵錯資訊已離開 第 3 層則會記錄要求
  4. 如果系統持續記錄其他偵錯資訊,請確認您是否 遵循 中列出的所有步驟 正確停用路由器上特定虛擬主機的偵錯記錄。如果 錯過任何步驟,請再次正確重複所有步驟。
  5. 如果還是無法取得偵錯資訊,請與 Apigee Edge 支援