Come configurare OpenLiteSpeed in modalità transparent proxy verso una applicazione containerizzata con Docker

Cerca

In questo scenario dobbiamo affrontare il seguente problema. Abbiamo un web server basato su OpenLiteSpeed con vari virtual host attivi e ora abbiamo la necessità di far girare sullo stesso server anche una applicazione Laravel containerizzata con Docker. Vediamo in questo tutorial come impostare OpenLiteSpeed in modalità transparent proxy per inoltrare il traffico verso l’applicazione dockerizzata.

Creare un nuovo Virtual Host

La prima cosa da fare è creare un Virtual Host per la nostra Laravel app. Dall’interfaccia di OpenLiteSpeed selezioniamo dal menu laterale la voce Virtual Hosts e premiamo sul pulsante +. Facciamo riferimento alla seguente immagine personalizzando con il dominio della nostra app.

Premiamo sul pulsante Salva e procediamo quindi con le seguenti impostazioni che si trovano nella scheda General.

OpenLiteSpeed proxa ad altri server una volta che sono stati definiti come applicazioni esterne. Procediamo pertanto nella scheda External App e configuriamo i valori come nella seguente immagine opportunamente personalizzando la voce Address, la quale deve contenere l’IP del server e la porta esposta del container Docker su cui gira la nostra applicazione Laravel. Nel nostro esempio, l’indirizzo del server è lo stesso su cui gira OpenLiteSpeed e pertanto usiamo localhost, mentre la porta è la 8000 Laravel standard.

Andiamo ora nella scheda Context ed impostiamo le due voci come nella seguente screenshot. La voce Web Server la selezioniamo dalla tendina che riporterà il nome della External App che abbiamo appena configurato nel passaggio precedente.

Aggiungere il Virtual Host nei Listener

Ora dal menu laterale di OpenLiteSpeed scegliamo la voce Listeners. Aggiungiamo quindi il Virtual Host appena creato sia nel Listener per l’HTTP sia nel Listener per l’HTTPS.

Controlliamo la configurazione della nostra Laravel app

Verifichiamo che la nostra applicazione sia correttamente configurata per un ambiente di produzione. Controlliamo in particolare che nel file .env queste due variabili siano opportunamente configurate con il nome a dominio per la messa in produzione:

  • APP_URL=https://my-laravel-app.com
  • ASSET_URL=”${APP_URL}”

Notiamo che APP_URL è configurato per girare in HTTPS e ASSET_URL ha lo stesso valore di APP_URL. Questa uguaglianza è fondamentale affinché l’url degli assets messi a disposizione dall’applicazione Laravel sia consistente con quello dell’applicazione. La mancata configurazione di queste variabili determinerebbe il mancato funzionamento dell’applicazione in quanto gli assets (tra cui anche i file CSS e i JS compilati con Vite) verrebero presentati da Laravel con un URL di tipo localhost:8000.

Avviamo il container della nostra Laravel app

A questo punto siamo pronti per avviare la nostra applicazione Laravel. Lanciamo quindi:

				
					docker compose up --build --force-recreate -d
				
			

Aggiunta del certificato SSL

Opportuno è inoltre configurare la scheda SSL per il nostro Virtual Host. Per fare questo possiamo tenere come riferimento questa guida che avevo scritto in precedenza: https://alessandromasciadri.com/come-ottenere-un-certificato-ssl-per-openlitespeed-con-lets-encrypt/

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito utilizza Akismet per ridurre lo spam. Scopri come vengono elaborati i dati derivati dai commenti.

Most Recent

Come eseguire il backup di un Docker volume

Prima di apportare qualsiasi modifica o eseguire operazioni di manutenzione sui volumi della propria infrastruttura Docker, è vivamente consigliato eseguire un backup di questi volumi.

Partners