在路由器上启用 NGINX 调试日志

<ph type="x-smartling-placeholder"></ph> 您正在查看 Apigee Edge 文档。
转到 Apigee X 文档
信息

<ph type="x-smartling-placeholder">

在 Apigee 上,路由器配置为仅记录错误日志文件中的错误消息, 默认值。不过,在很多情况下,您可能需要收集更多信息, 确定发生特定错误的原因。其中一种方法是将路由器配置为 在调试模式下运行,以便获取调试日志,从而获取更多 并更快地予以解决。

本文档介绍了如何在 Apigee Edge 的路由器上为 特定虚拟主机。可以启用调试日志记录功能,以便在出现任何错误时捕获更多信息。 例如请求格式不正确 <ph type="x-smartling-placeholder"></ph> 400 Bad Request - SSL Certificate Error(400 请求 - SSL 证书错误)位于 北向 (在客户端应用和路由器之间)。

<ph type="x-smartling-placeholder">

准备工作

  • 如果您不熟悉 NGINX 错误日志和日志记录级别,请参阅 NGINX 错误日志文档
  • 收集要处理的 API 请求的组织、环境和虚拟主机名 您需要收集调试信息。

在路由器上启用 NGINX 调试日志

本部分介绍如何在边缘路由器上启用调试日志。

<ph type="x-smartling-placeholder">

确定相关的虚拟主机配置文件

以下步骤介绍了如何在路由器上查找相关的虚拟主机配置文件:

  1. 如果您知道特定 API 的组织名称、环境名称和虚拟主机 想要调试的 请求,然后 确定虚拟主机 conf 文件,如下所示: <ph type="x-smartling-placeholder">
      </ph>
    1. 导航到 /opt/nginx/conf.d/ 目录。
    2. 搜索文件 ORG_NAME_ENV_NAME_VIRTUALHOST.conf 文件添加到 conf.d 目录中:
      ls -ltrh | grep "ORG_NAME_ENV_NAME_VIRTUALHOST_NAME"
      
  2. 如果您不知道组织名称,可以确定虚拟主机配置 修改文件,具体如下所示:

    转到 /opt/nginx/conf.d/ 目录并搜索: hostalias

    ls -ltrh | grep -r 'HOST_ALIAS_NAME'
    

    示例输出:

    假设主机别名为 opdk.cert-test.com。运行 ls -ltrh 命令,您将看到如下所示的输出:

    <ph type="x-smartling-placeholder">

为路由器上的特定虚拟主机启用调试日志记录

以下步骤介绍了如何在 Apigee Router 上启用调试日志, 虚拟主机。

  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 请求时,系统会捕获上面显示的信息 大型载荷。只有在启用调试日志记录功能后,系统才会显示此日志。

  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. 以下文件现在仅捕获错误日志:
    /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. 验证您是否只看到错误信息,调试信息已不再显示 为请求记录日志。
  4. 如果您发现系统仍在记录其他调试信息,请验证您是否 进行了以下操作: 为路由器上特定虚拟主机正确停用调试日志。如果您有 遗漏了任何步骤,请重新正确地重复所有步骤。
  5. 如果您仍无法获取调试信息,请联系 Apigee Edge 支持