Come escludere gli URL da ProxyPass in Apache

14 feb 2023 2 min di lettura
Come escludere gli URL da ProxyPass in Apache
Indice dei contenuti

Introduzione

Il modulo mod_proxy di Apache consente di inoltrare richieste a un altro server utilizzando le direttive ProxyPass e ProxyPassReverse. Tuttavia, in alcuni casi, potresti voler escludere determinati URL dal proxy. In questo tutorial, ti mostrerò come escludere un URL da ProxyPass in Apache.

mod_proxy di Apache è un modulo opzionale per il server HTTP Apache che implementa una funzionalità di proxy, gateway o cache per il server. Il modulo fornisce la capacità di proxy per protocolli come AJP13, FTP, CONNECT (per SSL), HTTP / 0.9, HTTP / 1.0 e HTTP / 1.1.]

Il modulo mod_proxy di Apache fornisce funzionalità di base di proxy, mentre il modulo mod_proxy_balancer e uno o più moduli bilanciatore se è richiesto il bilanciamento del carico. Inoltre, funzionalità estese sono fornite da altri moduli, tra cui la memorizzazione nella cache fornita dal modulo mod_cache e relativi moduli. Il modulo mod_proxy_http, che richiede il servizio del modulo mod_proxy, fornisce le funzionalità utilizzate per il proxy di richieste HTTP e HTTPS, supportando HTTP/0.9, HTTP/1.0 e HTTP/1.1. Tuttavia, non fornisce alcuna capacità di memorizzazione nella cache.

Il primo passaggio consiste nell'identificare l'URL che si desidera escludere dall'inoltro tramite proxy. Per questo tutorial, supponiamo di voler escludere l'URL "/static" dall'essere proxy.

Escludi URL in Apache ProxyPass

Il proxy Apache invia le richieste ai listener back-end. In alcuni casi, potrebbe essere necessario eseguire gli URL da inoltrare. Per esempio. hai del contenuto statico memorizzato sotto "/var/www/html/static" . L'applicazione serve il contenuto statico, i cui URL iniziano con "/static" . Volevi servire tutti gli URL che iniziano con "/static" dovrebbero essere serviti direttamente dalla directory senza proxy.

Puoi farlo aggiungendo la seguente configurazione prima delle impostazioni principali di ProxyPass:

ProxyPass /static !
Alias "/static" "/var/www/html/static"

I simboli ! dicono ad apache, non alle richieste proxy che iniziano con il sub url "/static" . L'Alias ​​associa gli URL alla directory "/var/www/html/static".

Assicurati che la configurazione di cui sopra sia aggiunta prima della configurazione di ProxyPass. Un host virtuale di esempio è simile al seguente:

<VirtualHost *:80>
    ServerName example.com
 
    ProxyPass /static !
    Alias "/static" "/var/www/html/static"
 
    <Directory "/var/www/html">
        Require all granted
    </Directory>
 
    ProxyPreserveHost On
    ProxyPass /  http://127.0.0.1:8080/
    ProxyPassReverse /  http://127.0.0.1:8080/
</VirtualHost>

Apportare le modifiche richieste nella configurazione dell'host virtuale Apache e riavviare il servizio Apache. Per testare la configurazione, accedi all'URL che hai escluso dal proxy, in questo caso sarebbe "/static". Se la configurazione è corretta, dovresti vedere il contenuto del tuo sito Web, invece di essere inoltrato al server di back-end.

Conclusione

In conclusione, il modulo Apache mod_proxy fornisce anche un'opzione per eseguire gli URL da inoltrare. Ciò può essere utile per servire contenuti statici direttamente dal server Web invece di inviarli tramite proxy al server di back-end. In questo tutorial, ti abbiamo fornito le istruzioni con un esempio, per escludere gli URL da ProxyPass nel server web Apache. Ricordarsi di testare la configurazione dopo aver apportato eventuali modifiche per assicurarsi che funzioni come previsto.

Support us with a

Successivamente, completa il checkout per l'accesso completo a Noviello.it.
Bentornato! Accesso eseguito correttamente.
Ti sei abbonato con successo a Noviello.it.
Successo! Il tuo account è completamente attivato, ora hai accesso a tutti i contenuti.
Operazione riuscita. Le tue informazioni di fatturazione sono state aggiornate.
La tua fatturazione non è stata aggiornata.