Come configurare Nginx per Laravel su Ubuntu e Debian

22 feb 2023 4 min di lettura
Come configurare Nginx per Laravel su Ubuntu e Debian
Indice dei contenuti

Introduzione

Laravel è un framework web gratuito e open-source scritto in PHP. È stato creato da Taylor Otwell nel 2011 con l'obiettivo di semplificare lo sviluppo di applicazioni web, fornendo una sintassi elegante e espressiva per la scrittura del codice.

Laravel si basa su un'architettura Model-View-Controller (MVC) e offre numerose funzionalità tra cui la gestione delle migrazioni del database, la gestione delle sessioni e delle autenticazioni, il routing, l'elaborazione delle richieste HTTP e la generazione di viste.

Laravel è anche noto per la sua vasta comunità di sviluppatori che contribuiscono a migliorare e mantenere il framework. Ciò significa che esistono molte risorse online disponibili, come documentazione ufficiale, tutorial, forum e pacchetti di terze parti, che possono essere utilizzati per aiutare nello sviluppo di applicazioni web Laravel.

In questo tutorial, forniremo una guida completa su come configurare Nginx per un'applicazione Laravel.

Installare Nginx

Prima di poter configurare Nginx per la tua applicazione Laravel, devi prima installare Nginx sul tuo server. Puoi installare Nginx sul tuo server usando il seguente comando:

sudo apt-get update 
sudo apt-get install nginx 

Installare PHP

Per eseguire un'applicazione Laravel su Nginx, devi anche installare PHP, che è il linguaggio di scripting con cui è costruito Laravel. Puoi installare PHP e le sue dipendenze eseguendo il seguente comando:

sudo apt-get install php php-fpm php-mysql

Questo comando installa PHP, PHP FastCGI Process Manager e l'estensione MySQL per PHP.

Una volta completata l'installazione, è necessario configurare PHP per funzionare con Nginx. Puoi farlo modificando il file di configurazione php-fpm:

sudo nano /etc/php/8.1/fpm/pool.d/www.conf

In questo file, è necessario aggiornare le seguenti impostazioni:

user = www-data
group = www-data
listen = /run/php/php8.1-fpm.sock

Queste impostazioni assicurano che PHP venga eseguito con lo stesso utente e gruppo di Nginx e sia in ascolto sul socket corretto.

Salva e chiudi il file quando hai finito, quindi riavvia PHP-FPM per applicare le modifiche:

sudo systemctl restart php8.1-fpm

Con PHP installato e configurato, il tuo server Nginx è ora pronto per servire le applicazioni Laravel.

Creare un blocco server Nginx

Il passaggio successivo consiste nel creare un blocco del server Nginx, che viene utilizzato per definire le impostazioni di configurazione per un sito Web o un'applicazione specifici. Per creare un blocco server per la tua applicazione Laravel, crea un nuovo file nella directory /etc/nginx/sites-available, come segue:

sudo nano /etc/nginx/sites-available/laravel

In questo file, aggiungi le seguenti impostazioni di configurazione:

server {
    listen 80;
    server_name example.com;
    root /var/www/laravel/public;
 
    index index.php;
 
    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }
 
    location ~ \.php$ {
        try_files $uri =404;
        fastcgi_pass unix:/run/php/php8.1-fpm.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
}

In questa configurazione, stiamo ascoltando sulla porta 80, definendo il nome del server come esempio.com e impostando la directory principale per l'applicazione Laravel. Stiamo anche specificando il file indice e definendo il blocco di posizione per l'applicazione Laravel. Inoltre, stiamo definendo il blocco di posizione per i file PHP e specificando i parametri FastCGI.

Abilitare il blocco del server Nginx

Dopo aver creato il blocco del server, devi abilitarlo. Per fare ciò, crea un collegamento simbolico dal file /etc/nginx/sites-available/laravel alla directory /etc/nginx/sites-enabled, come segue:

sudo ln -s /etc/nginx/sites-available/laravel /etc/nginx/sites-enabled/

Prima di riavviare Nginx, dovresti testare la configurazione per assicurarti che non ci siano errori di sintassi. Puoi testare la configurazione usando il seguente comando:

sudo nginx -t

Se non ci sono errori di sintassi, puoi riavviare Nginx usando il seguente comando:

sudo systemctl restart nginx

Configurare SSL/TLS

Per proteggere la tua applicazione Laravel, devi configurare SSL/TLS. Per fare ciò, dovrai ottenere un certificato SSL/TLS da un'autorità di certificazione (CA) attendibile e installarlo sul tuo server. Una volta ottenuto un certificato, puoi configurare SSL/TLS aggiungendo le seguenti impostazioni di configurazione al blocco del server:

listen 443 ssl;
 
ssl_certificate /path/to/your/certificate.pem;
ssl_certificate_key /path/to/your/private.key;

Dovresti sostituire /path/to/your/certificate.pem e /path/to/your/private.key rispettivamente con i percorsi del tuo certificato SSL/TLS e della tua chiave privata.

Ottimizza le prestazioni

Per ottimizzare le prestazioni della tua applicazione Laravel, puoi configurare il caching Nginx. La memorizzazione nella cache può aiutare a ridurre il carico del server e migliorare i tempi di caricamento della pagina. Per abilitare la memorizzazione nella cache, puoi aggiungere le seguenti impostazioni di configurazione al blocco del server:

Abilitare la memorizzazione nella cache

La memorizzazione nella cache può aiutare a migliorare le prestazioni della tua applicazione Laravel riducendo il carico del server e migliorando i tempi di caricamento della pagina. Per abilitare la memorizzazione nella cache in Nginx, puoi aggiungere la seguente configurazione al blocco del server:

location ~* \.(jpg|jpeg|png|gif|ico|css|js)$ {
    expires 1y;
    add_header Cache-Control "public, no-transform";
}

Questa configurazione indica a Nginx di memorizzare nella cache i file immagine, CSS e JavaScript per un anno e di inviare un'intestazione Cache-Control "pubblica".

Abilitare la compressione Gzip

L'abilitazione della compressione gzip può anche aiutare a migliorare le prestazioni dell'applicazione Laravel riducendo le dimensioni dei file trasferiti tra il server e il client. Per abilitare la compressione gzip in Nginx, puoi aggiungere la seguente configurazione al blocco del server:

gzip on;
gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;

Questa configurazione indica a Nginx di abilitare la compressione gzip per i tipi di file basati su testo.

Regolare i processi e delle connessioni dei lavoratori

Infine, puoi regolare i processi di lavoro e le connessioni per ottimizzare le prestazioni della tua applicazione Laravel su Nginx. Questo può aiutare a garantire che il tuo server possa gestire un gran numero di richieste senza essere sopraffatto. Per regolare i processi di lavoro e le connessioni, puoi aggiungere la seguente configurazione al blocco http nel file nginx.conf:

worker_processes auto;
worker_connections 1024;

Questa configurazione indica a Nginx di rilevare automaticamente il numero di core della CPU sul server e di utilizzare tale numero per i processi di lavoro. Specifica inoltre un massimo di 1024 connessioni per processo di lavoro.

Conclusione

In questo tutorial, abbiamo fornito una guida completa su come configurare Nginx per un'applicazione Laravel. Abbiamo coperto i passaggi per installare e configurare Nginx, creare un blocco server Nginx per Laravel, abilitare SSL/TLS e ottimizzare le prestazioni. Seguendo questi passaggi, puoi assicurarti che la tua applicazione Laravel funzioni in modo fluido ed efficiente su Nginx.

Buy me a coffeeBuy me a coffee

Supportaci se ti piacciono i nostri contenuti. Grazie.

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.