L’errore “Request-URI Too Long” di Apache si verifica quando un client invia un URL che supera il limite di lunghezza predefinito dal server. Questo problema può impedire agli utenti di accedere a pagine specifiche e si verifica in genere nelle applicazioni che inviano grandi quantità di dati nell’URL.

Se siete alla ricerca di una soluzione di hosting ad alte prestazioni con configurazioni di server ottimizzate, Ava Hosting offre server VPS e dedicati con supporto Apache completo per prevenire e risolvere efficacemente tali errori.

Cause dell’errore Request-URI Too Long

  1. Parametri di richiesta eccessivi: Troppi parametri nell’URL possono superare il limite consentito.
  2. URL lunghi nelle applicazioni Web: Alcune applicazioni costruiscono dinamicamente URL lunghi, causando questo problema.
  3. Impostazioni del server non configurate correttamente: La configurazione predefinita di Apache può limitare gli URL lunghi.
  4. Limitazioni del server proxy o del bilanciatore di carico: I server intermedi possono imporre i propri limiti alla lunghezza degli URI.
  5. Restrizioni di sicurezza: Alcuni moduli di sicurezza, come mod_security, possono bloccare gli URI lunghi.

Come risolvere l’errore Request-URI Too Long (richiesta di un URL troppo lungo)

1. Aumentare il limite di lunghezza dell’URI di Apache

Modificare la direttiva LimitRequestLine nel file di configurazione di Apache per aumentare la lunghezza della richiesta consentita.

  1. Aprite il file di configurazione di Apache (httpd.conf o apache2.conf):
    sudo nano /etc/apache2/apache2.conf  # Debian/Ubuntu
    sudo nano /etc/httpd/conf/httpd.conf  # CentOS/RHEL
  2. Aggiungere o modificare la seguente riga:
    LimitRequestLine 8190

    Il valore predefinito è 8190 byte (8 KB). Se necessario, è possibile aumentarlo a 16384 (16 KB) o più.

  3. Riavviare Apache per applicare le modifiche:
    sudo systemctl restart apache2  # Debian/Ubuntu
    sudo systemctl restart httpd  # CentOS/RHEL

2. Aumentare il limite del campo dell’intestazione

La direttiva LimitRequestFieldSize controlla la dimensione massima di un campo di intestazione della richiesta HTTP. Se si hanno URL lunghi con intestazioni, aumentare questo valore può essere utile.

  1. Aprire il file di configurazione di Apache:
    sudo nano /etc/apache2/apache2.conf  # Debian/Ubuntu
    sudo nano /etc/httpd/conf/httpd.conf  # CentOS/RHEL
  2. Aggiungete o modificate la seguente riga:
    LimitRequestFieldSize 16384
  3. Riavviare Apache:
    sudo systemctl restart apache2  # Debian/Ubuntu
    sudo systemctl restart httpd  # CentOS/RHEL

3. Controllare e modificare il codice dell’applicazione web

  • Se l’applicazione trasmette troppi dati tramite richieste GET, si consiglia di passare a richieste POST, che non hanno limiti di lunghezza.
  • Ottimizzate le strutture degli URL per ridurre al minimo i parametri non necessari.
  • Utilizzate i cookie o le sessioni per memorizzare grandi quantità di dati invece di passarli nell’URL.

4. Configurare i server proxy o i bilanciatori di carico

Se il server si trova dietro un proxy o un bilanciatore di carico, aggiornare le impostazioni per consentire URI più lunghi.

Per Nginx:

proxy_buffer_size 16k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
large_client_header_buffers 4 16k;

Per HAProxy:

option http-buffer-request
max-header-size 32768

Dopo aver apportato le modifiche, riavviare il rispettivo servizio:

sudo systemctl restart nginx  # For Nginx
sudo systemctl restart haproxy  # For HAProxy

5. Disabilitare o modificare le regole di mod_security

Se mod_security è abilitato, potrebbe bloccare gli URI di richiesta lunghi. Per verificare se è la causa del problema, disabilitarlo temporaneamente:

sudo a2dismod security2  # Debian/Ubuntu
sudo systemctl restart apache2  # Restart Apache

Se la disabilitazione di mod_security risolve il problema, considerare la possibilità di personalizzare le sue regole invece di disattivarlo definitivamente.

Conclusione

L’errore “Request-URI Too Long” in Apache è tipicamente causato da un’eccessiva lunghezza dell’URL, spesso dovuta ad applicazioni non configurate correttamente, a stringhe di query troppo lunghe o a limitazioni nelle impostazioni del proxy. Fortunatamente, questo problema può essere risolto con diverse strategie efficaci:

  • Aumentare i limiti di Apache e del server (ad esempio, LimitRequestLine, LimitRequestFieldSize)

  • Ottimizzazione delle strutture degli URL e dei payload delle richieste GET nelle vostre applicazioni

  • Regolazione delle configurazioni del reverse proxy di NGINX o Apache

  • Revisione delle regole WAF (Web Application Firewall) o ModSecurity che potrebbero innescare il rifiuto

In AvaHost, il nostro ambiente di hosting è progettato per essere flessibile e favorevole agli sviluppatori. Che si tratti di un piano di hosting condiviso o della gestione di un proprio server VPS/dedicato, si ha il pieno controllo sulle configurazioni del server per affrontare tali problemi.