Come utilizzare Apache come proxy inverso: una guida dettagliata
Pubblicato: 2023-07-23In questa guida troverai la risposta a Come utilizzare Apache come proxy inverso . Un server proxy inverso è un potente strumento che funge da intermediario tra client e server back-end, come server Web o server applicativi. A differenza di un proxy forward tradizionale, che si trova tra i client e Internet, un proxy inverso si trova tra i client e uno o più server.
Quando un client effettua una richiesta, il server proxy inverso inoltra tale richiesta al server back-end appropriato per conto del client. Quindi prende la risposta dal server back-end e la invia al client. Questo processo nasconde efficacemente ai client l'identità e la struttura interna del server back-end.
I proxy inversi offrono diversi vantaggi, tra cui una maggiore sicurezza proteggendo i server di back-end dall'esposizione diretta a Internet, il bilanciamento del carico per distribuire le richieste dei client su più server e la memorizzazione nella cache per migliorare le prestazioni fornendo i contenuti memorizzati nella cache ai client.
Sommario
Distinzione tra proxy diretto e proxy inverso
- Direzione del proxy:
- Inoltra delega: Gestisce le richieste dei client per accedere alle risorse su Internet. Si trova tra i client e Internet, inoltrando le richieste dei client a server esterni.
- Proxy inverso: gestisce le richieste dei client per accedere alle risorse all'interno della rete di un'organizzazione. Si trova tra client e server back-end, inoltrando le richieste dei client al server back-end appropriato.
- Prospettiva del cliente:
- Inoltra delega: I client in genere non sono a conoscenza dell'esistenza del proxy di inoltro. La richiesta del client viene inviata al server proxy e il server di destinazione riceve la richiesta come se provenisse direttamente dal client.
- Proxy inverso: I client inviano le richieste direttamente al proxy inverso, non ai server back-end. Il proxy inverso inoltra quindi le richieste ai server back-end per conto dei client.
- Caso d'uso:
- Forward Proxy: spesso utilizzato per il filtraggio dei contenuti, il controllo degli accessi e l'anonimizzazione delle richieste dei client nascondendo gli indirizzi IP dei client.
- Proxy inverso : utilizzato principalmente per il bilanciamento del carico, la terminazione SSL, la memorizzazione nella cache e la fornitura di un gateway sicuro ai servizi di back-end.
- Prospettiva del server:
- Proxy di inoltro : il server di destinazione vede la richiesta proveniente dal proxy di inoltro, non dal client originale. Non è a conoscenza del cliente effettivo che effettua la richiesta.
- Proxy inverso: i server back-end vedono il proxy inverso come il client che effettua la richiesta. Non sono a conoscenza dei veri clienti che hanno effettuato la richiesta originale.
- Implicazioni sulla sicurezza:
- Forward Proxy: migliora la privacy dei client mascherando gli indirizzi IP dei client. Può anche fornire ulteriori livelli di sicurezza filtrando i contenuti dannosi prima che raggiungano i client.
- Proxy inverso: funge da scudo per i server back-end, mantenendo la loro struttura interna nascosta ai client esterni. Aiuta a proteggere dall'esposizione diretta a Internet e da potenziali attacchi.
- Posizione di distribuzione:
- Proxy di inoltro: distribuito all'interno della rete del cliente o sul dispositivo del cliente per controllare l'accesso a Internet in uscita.
- Proxy inverso: implementato sul perimetro della rete dell'organizzazione, tra Internet e i server di back-end, gestendo le richieste dei client in entrata.
Esplorare i vari casi d'uso dei proxy inversi
I proxy inversi offrono un'ampia gamma di casi d'uso che migliorano le prestazioni, la sicurezza e la scalabilità delle applicazioni e dei servizi web.
Alcuni dei principali casi d'uso dei proxy inversi includono:
- Bilanciamento del carico: i proxy inversi possono distribuire le richieste dei client in entrata su più server back-end. Questo aiuta a distribuire il carico, prevenire il sovraccarico del server e garantire un migliore utilizzo delle risorse. Il bilanciamento del carico migliora le prestazioni complessive e la reattività dell'applicazione.
- Terminazione SSL : i proxy inversi possono gestire la crittografia e la decrittografia SSL/TLS per conto dei server back-end. Ciò scarica l'elaborazione SSL ad alta intensità di risorse dai server back-end, riducendo il loro carico di lavoro e semplificando la gestione dei certificati.
- Caching: i proxy inversi possono archiviare le risorse richieste di frequente nella memoria cache. Quando i client richiedono le stesse risorse, il proxy inverso serve direttamente il contenuto memorizzato nella cache, riducendo il carico del server e migliorando i tempi di risposta.
- Accelerazione Web: memorizzando nella cache il contenuto statico e comprimendo i dati, i proxy inversi possono accelerare il caricamento delle pagine Web per i client, offrendo un'esperienza utente più fluida.
- Sicurezza e protezione DDoS: i proxy inversi fungono da barriera protettiva tra Internet e i server back-end. Possono filtrare e bloccare il traffico dannoso, proteggere dagli attacchi DDoS (Distributed Denial of Service) e nascondere l'indirizzo IP reale del server back-end per prevenire attacchi diretti.
- Web Application Firewall (WAF) : i proxy inversi possono fungere da WAF, ispezionando il traffico in entrata alla ricerca di potenziali minacce, come SQL injection, cross-site scripting (XSS) e altre attività dannose. Aiutano a salvaguardare le applicazioni web dalle vulnerabilità comuni.
- Singolo punto di ingresso: i proxy inversi forniscono un unico punto di ingresso per i client esterni per accedere a più server di back-end. Questo semplifica l'architettura di rete e consente una più facile gestione e scalabilità dei servizi.
- Conversione del protocollo: i proxy inversi possono tradurre le richieste da un protocollo all'altro. Ad esempio, possono convertire le richieste HTTP in WebSocket o altri protocolli specifici dell'applicazione, facilitando la comunicazione tra client e server.
- Compressione e ottimizzazione dei contenuti: i proxy inversi possono comprimere i contenuti in uscita prima di inviarli ai client, riducendo le dimensioni del trasferimento dei dati e migliorando i tempi di caricamento delle pagine.
Prerequisiti: configurare Apache come proxy inverso
Installa il client SSH bit per bit
- Cerca Bitwise SSH Client nel tuo browser. Fare clic sul collegamento https://www.bitvise.com/ssh-client-download e avviare l'installazione
2. Dopo l'installazione del setup, apri il file .exe dal tuo computer e completa l'installazione del client SSH di Bitvise.
Come accedere al server SSH utilizzando bit a bit?
- Al termine dell'installazione, verrà visualizzata la finestra sottostante. Inserisci il tuo host, la porta e il nome utente, seleziona la password dal menu a discesa Metodo iniziale, quindi fai clic su Accedi. Apparirà un pop-up per inserire una password. Inserisci la tua password SSH.
2. Una volta effettuato l'accesso, fai clic su "Nuova console terminale" e verrà visualizzato un terminale.
Passaggio 1: installa Apache
Connetti server
Ora, per stabilire una connessione al tuo server e aggiornare l'indice del pacchetto locale utilizzando i repository APT, inserisci il comando seguente nel terminale e premi invio:
aggiornamento appropriato
Gli aggiornamenti impiegheranno del tempo per essere completati, nel frattempo attendere il completamento.
Come installare Apache su Ubuntu ?
- Installa Apache su Ubuntu
Ora, per installare Apache da Ubuntu, inserisci il comando seguente e premi invio
apt install -y apache2
2. Verificare la versione di Apache
Dopo l'installazione, hai la possibilità di verificare la versione di Apache utilizzando
apache2 -version
3. Verificare lo stato di Apache
Hai anche la possibilità di verificare lo stato di Apache2 utilizzando il comando seguente. Ciò consente di determinare rapidamente se il server è in esecuzione e se sono presenti problemi che richiedono attenzione.
systemctl status apache2
Come osservi, lo stato (END) visualizzato sullo schermo è una chiara indicazione di una corretta installazione di Apache2. Questo risultato conferma che il processo di installazione è stato completato senza errori o problemi.
4. Abilita Apache
Per abilitare Apache2 su Ubuntu usa il comando:
systemctl enabled apache2
5. Avvia Apache
Se vuoi riavviare Apache2 su Ubuntu usa il comando seguente nel terminale:
systemctl start apache2
Come installare Apache su Almalinux?
- Controlla gli aggiornamenti disponibili
Per installare Apache2 su Almalinux, controlla gli aggiornamenti disponibili eseguendo il comando " dnf check-update" .
dnf check-update
Nel caso in cui vengano trovati aggiornamenti, procedi ad aggiornare il tuo Linode con "dnf update". Inoltre, se durante il processo vengono aggiornati componenti del kernel, ricordarsi di riavviare Linode con "reboot" per applicare le modifiche.
- Installa Apache
Ora procedi con l'installazione dei pacchetti Apache richiesti.
dnf install httpd httpd-tools
- Avvia Apache
Dopo aver installato Apache, non si avvia automaticamente. Per avviarlo e abilitarlo, utilizzare l'utilità systemctl .
systemctl start httpd
- Abilita Apache
Per assicurarti che Apache si riavvii automaticamente ogni volta che il sistema si riavvia , abilitalo.
systemctl enable httpd
- Controlla lo stato di Apache
Controlla lo stato di Apache usando il comando "systemctl status" . Dovrebbe essere visualizzato come attivo e in esecuzione.
systemctl status httpd
Passaggio 2: abilita i moduli Apache per il proxy inverso
Come abilitarlo su Ubuntu?
Per utilizzare efficacemente un proxy inverso con Apache Web Server, è necessario abilitare specifici moduli Apache che sono cruciali per supportare le funzionalità aggiuntive richieste dai server proxy inverso.
- Identificare i moduli richiesti
mod_proxy : fungendo da modulo proxy principale per Apache, mod_proxy gestisce in modo efficiente connessioni e reindirizzamenti. Consente ad Apache di funzionare come gateway per i server back-end sottostanti, rendendolo un modulo indispensabile per tutte le configurazioni di proxy inverso.
mod_proxy_http : questo modulo si basa su mod_proxy ed è indispensabile per supportare le richieste HTTP e HTTPS in un ambiente server proxy. Consente ad Apache di gestire efficacemente il proxy delle applicazioni Web utilizzando i protocolli HTTP/HTTPS .
mod_ssl: fornendo funzionalità essenziali, mod_ssl fornisce al server Apache HTTP il supporto per i protocolli SSL v3 e TLS v1.x. Questo modulo è fondamentale per stabilire connessioni sicure e crittografate, garantire l'integrità dei dati e migliorare la sicurezza del server web.
2. Abilita i moduli
Ora attiveremo questi moduli usando il comando a2enmod :
sudo a2enmod proxy sudo a2enmod proxy_http sudo a2enmod ssl
- Riavvia il server Apache2
Dopo aver abilitato qualsiasi nuovo modulo Apache, è imperativo non trascurare il passaggio cruciale del riavvio del server apache2 . Questo passaggio assicura che le modifiche abbiano effetto e consente ai moduli appena attivati di essere completamente integrati nella configurazione del server Apache.
sudo systemctl restart apache2
- Verifica moduli
È possibile confermare lo stato attivo di questi moduli utilizzando il seguente comando:
sudo apachectl -M
Passaggio 3: configurazione del proxy inverso Apache
Ora configura il proxy inverso di Apache per accettare le richieste da Internet e inoltrarle efficacemente alla risorsa scelta.
- Disabilita Apache predefinito
Per iniziare, disabiliterai il file di configurazione dell'host virtuale Apache predefinito. Ciò può essere ottenuto utilizzando il seguente comando:
a2dissite 000-default.conf
- Crea un nuovo file di configurazione
La creazione di un nuovo file di configurazione dell'host virtuale è un passaggio fondamentale nella personalizzazione di Apache per servire diverse applicazioni Web o siti Web sullo stesso server. UN l'host virtuale consente ad Apache di gestire più domini o sottodomini, ciascuno con la propria configurazione e impostazioni uniche.
Per creare un nuovo file di configurazione dell'host virtuale, segui questi passaggi generali:
Scegli un nome : seleziona un nome descrittivo per il tuo file host virtuale, che in genere termina con l'estensione ".conf". Ad esempio, "example.com.conf" o "cyberpanel.conf".
Passare alla directory di configurazione di Apache: nella maggior parte delle distribuzioni Linux, i file di configurazione di Apache sono archiviati nella directory "/etc/apache2/sites-available/" . Ad esempio:
cd /etc/apache2/sites-available/
Creare il file dell'host virtuale : utilizzare un editor di testo, come nano o vi, per creare il nuovo file di configurazione. Ad esempio:
sudo nano example.com.conf
Dopo aver inserito il comando sopra, apparirà il file seguente:
Configurare l'host virtuale : all'interno del file, utilizzare la direttiva <VirtualHost> per definire l'indirizzo IP e la porta per accettare le richieste per l'host virtuale specifico. Per un esempio di base, consentendo tutti gli indirizzi IP sulla porta HTTP predefinita (porta 80) , utilizzare quanto segue:
<VirtualHost *:80> ServerName site1.com ServerAlias www.site1.com ServerAdmin [email protected] ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined ProxyPass / http://127.0.0.1:8080/ ProxyPassReverse / http://127.0.0.1:8080/ ProxyRequests Off </VirtualHost>
Il processo di configurazione inizia definendo l'host virtuale con il comando <VirtualHost> , specificando l'indirizzo IP accettato e il numero di porta per Apache. In questo caso, viene utilizzato il carattere jolly *, che consente l'accettazione di tutti gli indirizzi IP, mentre il numero di porta è impostato su 80 , che rappresenta la porta HTTP predefinita. Successivamente, la configurazione include inoltre i seguenti elementi:
- ServerName : questa direttiva specifica il nome di dominio associato al server.
- ServerAlias: con ServerAlias, puoi definire nomi aggiuntivi che il server accetterà.
- ServerAdmin : la direttiva ServerAdmin imposta l'indirizzo e-mail di contatto che il server include nei messaggi di errore restituiti ai client.
- ErrorLog : ErrorLog imposta il nome di un file in cui Apache memorizza gli errori rilevati.
- CustomLog: CustomLog imposta il nome di un file in cui Apache registra le richieste del client al server.
- ProxyPass: ProxyPass mappa i server remoti nello spazio del server locale e definisce l'indirizzo di destinazione per il reindirizzamento del traffico. Consente ad Apache di agire come proxy inverso, inoltrando le richieste ai server back-end e migliorando le prestazioni delle applicazioni e la distribuzione del carico.
- ProxyPassReverse: ProxyPassReverse è fondamentale per un server proxy poiché riscrive la posizione originale, la posizione del contenuto e le intestazioni di risposta HTTP URI del server back-end con le informazioni del server proxy. Ciò garantisce che il proxy inverso gestisca correttamente le risposte e impedisce ai server back-end di essere esposti all'accesso diretto a Internet.
- ProxyRequests: ProxyRequests impedisce l'utilizzo del server HTTP Apache come proxy di inoltro, migliorando la sicurezza. In genere dovrebbe essere impostato su "off" quando si utilizza ProxyPass per evitare l'uso improprio del server come proxy aperto e proteggere da potenziali rischi per la sicurezza.
Salva ed esci : salva le modifiche ed esci dall'editor di testo.
Abilita l'host virtuale : utilizza il comando a2ensite per abilitare la nuova configurazione dell'host virtuale:
sudo a2ensite example.com.conf
Ricarica Apache: per applicare le modifiche, ricarica Apache per attivare il nuovo host virtuale:
sudo systemctl reload apache2
Una volta completati questi passaggi, il nuovo host virtuale è ora attivo e pronto per servire il sito Web o l'applicazione designati. È importante notare che le modifiche avranno effetto solo dopo che l'host virtuale è stato abilitato e Apache è stato ricaricato. Inoltre, puoi inserire i file del tuo sito web nella directory specificata dalla direttiva "DocumentRoot" per garantire che Apache fornisca correttamente il contenuto per questo particolare host virtuale.
Verifica configurazione: assicurarsi che la configurazione del proxy inverso funzioni come previsto. Visita il nome di dominio designato (ad es. "reverse-proxy.example.com") in un browser Web e Apache dovrebbe inoltrare correttamente le richieste al server di back-end.
Tieni presente che potrebbe essere necessario configurare impostazioni aggiuntive in base ai tuoi casi d'uso specifici, come la gestione dei certificati SSL, il bilanciamento del carico o l'inoltro WebSocket . Monitorare regolarmente le prestazioni e la sicurezza del server per garantire un funzionamento regolare.
Come utilizzare Apache come proxy inverso in Cyberpanel
In Cyberpanel l'integrazione di Apache con OpenLiteSpeed sul back-end offre il meglio di entrambi i mondi, combinando i vantaggi di velocità di OpenLiteSpeed con le funzionalità ricche di funzionalità di Apache. In particolare, l'utilizzo di Apache come proxy inverso non compromette le prestazioni della cache ls; manterrai lo stesso livello di prestazioni del solo OpenLiteSpeed . In questa configurazione, OpenLiteSpeed rimane responsabile del passaggio del traffico front-end ad Apache, che gestisce le richieste dal back-end. Inoltre, questa integrazione è supportata su entrambi i sistemi operativi AlmaLinux e Ubuntu . Seguendo questo articolo, gli utenti possono sfruttare appieno i vantaggi offerti dalla combinazione di Apache e OpenLiteSpeed in una configurazione di proxy inverso.
Accedi alla dashboard di Cyberpanel.
Vai all'opzione Sito Web Fai clic su Crea sito Web
Inserisci il nome del tuo dominio, l'indirizzo e-mail e la versione PHP e seleziona Apache come proxy inverso. Dopo aver inserito i dettagli, fare clic su Crea sito web. Potrebbe volerci del tempo e poi verrà creato
Questo sito Web funzionerà in Apache come modalità proxy inverso. Nel front-end, Openlitespeed funzionerà e nel back-end Apache. Quindi tutte le tue regole htaccess funzioneranno come prima, sia che tu stia usando Cpanel o qualsiasi altro pannello di controllo
Puoi vedere che il sito verrà creato con successo.
Per questo sito, puoi gestire la configurazione di Apache per questo sito nel nostro gestore di siti web. Clicca su Gestisci
Una volta che sei qui, fai clic su Apache Manager
E anche tu puoi passare anche a Openlitespeed puro. Supponiamo quindi che tu voglia decidere di non utilizzare Apache sul back-end con questo sito Web. Se vuoi passare a Openlitespeed puro , seleziona la versione PHP e fai clic su passa a Openlitespeed puro. Può essere convertito per utilizzare anche Apache se utilizza OpenLitespeed
Queste sono configurazioni di Apache. Puoi facilmente modificare se vuoi modificare qualcosa, ma assicurati di sapere cosa stai facendo perché qualcosa non va qui e il tuo sito web smetterà di funzionare
Nelle Nostre Configurazioni Apache, stiamo usando PHP-FPM, quindi queste sono le configurazioni PHP-FPM che stai usando
Per le configurazioni PHP Vai su PHP e fai clic su Modifica configurazioni PHP. Se vuoi modificare le configurazioni PHP.
Se stai usando Apache, devi anche modificare le configurazioni Php, quindi se hai installato Apache vedrai questo URL.
Per impostazione predefinita, sarai in grado di modificare le configurazioni per Litespeed Php. Se vuoi modificare le configurazioni per Apache, fai clic anche su MODIFICA CONFIGURAZIONI APACHE
Dopo aver fatto clic su MODIFICA CONFIGURAZIONI APACHE , puoi fare qualsiasi cosa con le configurazioni Litespeed come post_max_size, upload_max_filesize, max_execution_time o altro.
Assicurarsi dopo aver modificato le configurazioni Fare clic su Salva modifiche
Allo stesso modo, puoi usare anche la modifica avanzata
Allo stesso modo, puoi installare le estensioni PHP per Apache. Basta fare clic su PHP-> Installa estensioni
Se stai usando Apache, devi anche GESTIONE DELLE ESTENSIONI APACHE , quindi se hai installato Apache vedrai questo URL.
Per impostazione predefinita, sarai in grado di installare le estensioni per Litespeed Php. Se vuoi installare le estensioni per Apache, fai clic anche su GESTISCI ESTENSIONI APACHE
Contenuto relativo
Puoi anche consultare la nostra guida su Apache vs NGINX Chi VINCE in termini di prestazioni?