429 Too Many Requests

Stai visualizzando la documentazione di Apigee Edge.
Vai alla documentazione di Apigee X.
info

Sintomo

Potresti visualizzare questo errore proveniente dal router e non vedere il messaggio 429 da una traccia perché le richieste non arrivano ai Message Processor. Chiamate direttamente ai router stessi, che restituiscono anche 429.

Messaggi di errore

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

Possibili cause

In genere, il file di configurazione di nginx ha un'impostazione di conf_load_balancing_load.balancing.driver.nginx.limit_conn=5000 che potrebbe essere troppo bassa per le connessioni in entrata.

Diagnosi

  1. Controlla il limite predefinito sul router nginx con il seguente comando:
    /opt/apigee/apigee-service/bin/apigee-service edge-router configure -search conf_load_balancing_load.balancing.driver.nginx.limit_conn
            
  2. Controlla le voci access_log dell'host virtuale per verificare la presenza di errori 429 e assicurati che non provengano da elaboratori di messaggi a monte, ma direttamente dal router:
    cd /opt/apigee/var/log/edge-router/nginx/ grep "429 " org~env-port_access_log
            

Risoluzione

  1. Utilizzando il comando ssh, connettiti ai nodi del router uno alla volta.
  2. Apri il seguente file (crealo se non esiste):
    /opt/apigee/customer/application/router.properties
            
  3. Aggiungi la seguente riga:
    conf_load_balancing_load.balancing.driver.nginx.limit_conn=25000
            
  4. Salva il file.
  5. Assicurati che il file sia di proprietà di apigee:apigee:
    sudo chown apigee:apigee router.properties
            
  6. Riavvia il router:
    /opt/apigee/apigee-service/bin/apigee-service edge-router restart
            
  7. Esegui la convalida con il seguente comando per verificare che la proprietà sia impostata:
    /opt/apigee/apigee-service/bin/apigee-service edge-router configure -search conf_load_balancing_load.balancing.driver.nginx.limit_conn
            
  8. Ripeti l'operazione su ogni router.