429 请求过多

您正在查看 Apigee Edge 文档。
前往 Apigee X 文档
信息

问题

您可能会看到来自路由器的此错误,但不会在跟踪记录中看到 429,因为请求未到达消息处理器。直接调用路由器本身,也会返回 429

错误消息

<html>
  <head> <title>429 Too Many Requests</title> </head>
  <body> <center> <h1>429 Too Many Requests</h1> </center> <hr> <center>server</center> </body>
</html>
    

可能的原因

通常,nginx 配置文件的设置为 conf_load_balancing_load.balancing.driver.nginx.limit_conn=5000,对于传入连接而言,此值可能过低。

诊断

  1. 使用以下命令检查 nginx 路由器的默认限制:
    /opt/apigee/apigee-service/bin/apigee-service edge-router configure -search conf_load_balancing_load.balancing.driver.nginx.limit_conn
            
  2. 检查虚拟主机 access_log 条目是否存在 429 错误,并确认这些错误并非来自上游消息处理器,而是直接来自路由器:
    cd /opt/apigee/var/log/edge-router/nginx/ grep "429 " org~env-port_access_log
            

分辨率

  1. 使用 ssh 命令,逐个连接到路由器节点。
  2. 打开以下文件(如果该文件不存在,请创建):
    /opt/apigee/customer/application/router.properties
            
  3. 添加以下代码行:
    conf_load_balancing_load.balancing.driver.nginx.limit_conn=25000
            
  4. 保存文件。
  5. 确保该文件的所有权为 apigee:apigee:
    sudo chown apigee:apigee router.properties
            
  6. 重启路由器:
    /opt/apigee/apigee-service/bin/apigee-service edge-router restart
            
  7. 使用以下命令进行验证,以验证是否已设置该属性:
    /opt/apigee/apigee-service/bin/apigee-service edge-router configure -search conf_load_balancing_load.balancing.driver.nginx.limit_conn
            
  8. 在每个路由器上重复此操作。