Come Configurare NGINX su Mac per il Testing

Hai bisogno di testare il sito web che stai sviluppando ma hai solo il tuo Mac per lavorare? Non è necessario creare un server separato o una macchina virtuale solo per testare il tuo sito web. Una rapida opzione è installare NGINX su Mac, e dovresti avere un server web in esecuzione direttamente sul tuo computer.

Resta qui e impara come installare e configurare NGINX su Mac. Imparerai un paio di modi diversi per installare NGINX, così potrai scegliere il metodo che funziona per te. Imparerai anche gli elementi di configurazione di base per aiutarti a iniziare il test.

Prerequisiti

Questo tutorial sarà una dimostrazione pratica. Se vuoi seguirci, assicurati di avere quanto segue:

Installazione di NGINX su Mac

Esistono due metodi per installare NGINX su Mac: compilando la sorgente o utilizzando un package manager. Ma un metodo di installazione non è migliore dell’altro. La scelta del metodo dipenderà dalle tue esigenze.

Nelle seguenti sezioni, imparerai come eseguire entrambi i metodi di installazione di NGINX.

Metodo 1: Compilazione e installazione dalla sorgente

Compilare e installare NGINX dalla sorgente ti offre la flessibilità di includere moduli o patch di sicurezza nella tua installazione di NGINX. Ad esempio, puoi compilare NGINX per includere il modulo Real-Time Messaging Protocol (RTMP) se hai configurato un server di streaming.

La personalizzazione richiede più passaggi e include l’installazione manuale delle dipendenze. Segui questi passaggi per installare NGINX su Mac da Source.

1. Apri un terminale sul tuo Mac.

2. Esegui il comando sottostante per creare una directory di lavoro nella tua cartella home. Questa directory conterrà tutti i file sorgente necessari per l’installazione di NGINX.

# Crea una cartella sorgente nella tua directory home
mkdir ~/src && cd ~/src

3. Successivamente, esegui i comandi sottostanti per scaricare (curl) ed estrarre (tar) le ultime Espressioni Regolari Compatibili con Perl (PCRE). I moduli Core e Rewrite di NGINX richiedono PCRE. La versione più recente di PCRE al momento della scrittura è 8.45.

# Scarica ed estrai la sorgente PCRE
curl -OL https://ftp.exim.org/pub/pcre/pcre-8.45.tar.gz
tar -xf pcre-8.45.tar.gz && rm pcre-8.45.tar.gz

4. Esegui ogni comando sottostante per scaricare (curl) la sorgente OpenSSL per aggiungere il supporto SSL. Questo aggiunta è un esempio di personalizzazione della build di NGINX. La versione più recente di OpenSSL al momento della scrittura è 1.1.1m.

# Scarica ed estrai i file sorgente di OpenSSL
curl -OL http://www.openssl.org/source/openssl-1.1.1m.tar.gz
tar -xf openssl-1.1.1m.tar.gz && rm openssl-1.1.1m.tar.gz

5. Dopo aver scaricato i requisiti, esegui i seguenti comandi per scaricare (curl) ed estrarre (tar) il codice sorgente di NGINX. L’ultima versione stabile al momento della scrittura è 1.20.2.

# Scarica ed estrai i file sorgente di NGINX
curl -OL http://nginx.org/download/nginx-1.20.2.tar.gz
tar -xf nginx-1.20.2.tar.gz && rm nginx-1.20.2.tar.gz
# Elenca i file/cartelle nella directory di lavoro
ls -l

A questo punto, dovresti avere in totale tre nuove directory, come mostrato di seguito.

Listing the source folders

6. Ora, esegui i comandi seguenti per compilare (make) e installare NGINX.

# Entra nella cartella sorgente di NGINX
cd nginx-1.20.2

# Crea la configurazione di NGINX
## Parametri:
## --with-pcre=../pcre-8.45/ : Specifica la posizione del codice sorgente di PCRE
## --with-http_ssl_module : Abilita il supporto HTTPS
## --with-openssl=../openssl-1.1.1m/ : Specifica il codice sorgente di OpenSSL. Richiesto dal modulo http_ssl_module
./configure --with-pcre=../pcre-8.45/ --with-http_ssl_module --with-openssl=../openssl-1.1.1m/

# Compila NGINX
make
# Installa NGINX
sudo make install

7. Successivamente, esegui il seguente comando per aggiungere il percorso di NGINX al $PATH di sistema aggiungendo il percorso completo /usr/local/nginx a /etc/paths. Dopo questo passaggio, puoi eseguire i comandi nginx senza specificare il percorso completo.

# Aggiungi NGINX al file /etc/paths
echo /usr/local/nginx/sbin | sudo tee -a /etc/paths

8. Esci dal terminale premendo CMD+Q e apri una nuova sessione del terminale per applicare il nuovo $PATHS.

9. Esegui il comando nginx di seguito per avviare NGINX poiché il server NGINX non si avvia automaticamente dopo l’installazione.

sudo nginx

10. Infine, conferma che NGINX sia in esecuzione. Apri una finestra del browser web e inserisci l’indirizzo HTTP://localhost. Dovresti vedere la pagina di benvenuto predefinita di NGINX come quella sotto.

L’installazione di NGINX da sorgente imposta la porta di ascolto predefinita 80.

Accessing the NGINX default web page

Poiché hai installato NGINX su Mac da sorgente come root, dovrai prefissare ogni comando nginx che emetti con sudo in futuro.

Metodo 2: Installazione di NGINX utilizzando Homebrew

Installare NGINX con Homebrew è più comodo e meno incline agli errori. Questo metodo installa automaticamente le dipendenze. Se non è necessario personalizzare l’installazione di NGINX, questo metodo è l’opzione più rapida e richiede solo un comando per l’installazione!

Per installare NGINX su Mac utilizzando Homebrew, procedi come segue.

1. Apri una nuova sessione del terminale.

2. Esegui il seguente comando brew per installare NGINX.

brew install nginx

Puoi installare NGINX come root con Homebrew? – No (non ufficialmente). Il comando di installazione di brew rifiuta di essere eseguito con il prefisso sudo. Se provi, otterrai il messaggio di errore qui sotto.

“Er” o: Eseguire Homebrew come root è estremamente pericoloso e non più supportato. Poiché Homebrew non riduce i privilegi durante l’installazione, daresti a tutti gli script di compilazione pieno accesso al tuo sistema.

3. Dopo l’installazione, invoca il comando seguente per avviare NGINX. Questo comando esegue NGINX come un demone di background.

Per impostazione predefinita, Homebrew installa NGINX in /usr/local/Cellar/nginx/ e crea collegamenti simbolici in /usr/local/opt/. Il binario di nginx ha un collegamento simbolico in /usr/local/bin e questa cartella è già inclusa nel $PATH.

nginx

Per eseguire NGINX senza un servizio di background, eseguire invece il comando seguente. Questo comando emette una direttiva globale PER NON eseguire nginx come un demone.

nginx -g “da” mon off;

Puoi interrompere NGINX premendo CTRL+C sul terminale in questa modalità.

4. Infine, invoca il comando curl di seguito per confermare che NGINX sia ora in esecuzione.

Installare NGINX tramite Homebrew imposta la porta di ascolto predefinita su 8080. Questa assegnazione predefinita della porta garantisce che tu possa eseguire nginx senza sudo.

curl HTTP://localhost:8080

Come puoi vedere di seguito, il comando curl ha scaricato la pagina web predefinita di NGINX, il che indica che il server è in esecuzione.

Testing NGINX with curl

Configurazione di NGINX per i test

Fino ad ora, hai installato NGINX, ma sta ancora lavorando con le impostazioni predefinite. Ci sono alcuni cambiamenti fondamentali che potresti considerare prima di iniziare a testare il tuo sito web.

Vuoi che NGINX si avvii automaticamente all’avvio del computer? Dove archivierai i file per il sito web che stai testando? Dovresti mantenere l’assegnazione predefinita della porta di ascolto?

Questi sono alcuni dei parametri che dovrai configurare dopo l’installazione di NGINX, che imparerai a impostare nelle sezioni seguenti.

Le sezioni successive illustrano i passaggi per la configurazione del file di configurazione di NGINX installato tramite Homebrew, a meno che le istruzioni non indichino esplicitamente altro.

Personalizzazione della porta di ascolto del server

A seconda del metodo di installazione, la porta di ascolto predefinita potrebbe essere 80 o 8080. La porta 8080 è generalmente accettabile per scopi di test e sviluppo. Tuttavia, potresti voler cambiare il numero di porta in alcuni casi, magari a causa di un conflitto con altri servizi o semplicemente perché lo desideri.

Qualunque sia il motivo, segui i passaggi di seguito per cambiare la porta di ascolto predefinita di NGINX.

1. Prima di tutto, esegui il comando seguente per inviare il segnale di stop (-s stop) per assicurarti che NGINX non sia in esecuzione. nginx -s stop

nginx -s stop

2. Successivamente, esegui il comando nginx di seguito per trovare il percorso del file di configurazione di NGINX.

nginx -t

Il risultato seguente mostra che il file di configurazione si trova in /usr/local/etc/nginx/nginx.conf.

Testing the NGINX configuration file

3. Apri il file di configurazione nel tuo editor di testo preferito, ad esempio nano, come nell’esempio seguente.

nano /usr/local/etc/nginx/nginx.conf

4. Ora, individua la riga listen all’interno del blocco server {}. Come puoi vedere qui sotto, il valore della porta di ascolto è 8080.

NGINX listening port number

5. Cambia il numero di porta listen con un altro valore di porta unico, come 9000, in questo esempio. Salva la modifica ed esci dal file.

Changing the listening port number

6. Ora, esegui di nuovo il comando nginx qui sotto per avviare nuovamente NGINX.

nginx

7. Infine, apri una nuova finestra del browser e vai su HTTP://localhost:9000. NGINX dovrebbe ora servire il sito web sulla porta 9000, come mostrato di seguito.

NGINX running on port 9000

Puntare alla tua directory Web di sviluppo

Per impostazione predefinita, l’installazione di NGINX su Mac serve la directory web da /usr/share/nginx/html (installato da sorgente) o /usr/local/Cellar/nginx/<version>/html (installato tramite Hombrew).

Ma cosa succede se i file del tuo sito web sono altrove, magari su un’altra unità? Non preoccuparti. Segui i passaggi seguenti per puntare NGINX alla tua directory web di sviluppo.

1. Per prima cosa, esegui i comandi seguenti per fermare NGINX e aprire il file di configurazione nell’editor di testo, come hai fatto nella sezione “Personalizzazione della porta di ascolto del server” (passaggi da uno a tre).

# Arresta NGINX
nginx -s stop
# Esegui il test per trovare il file di configurazione
nginx -t
# Apri il file di configurazione per l'editing
nano /usr/local/etc/nginx/nginx.conf

2. Nell’editor di testo, cerca la riga che dice root html; all’interno del blocco server {}.

The default web directory location

3. Modifica il valore root e cambialo con la tua cartella personalizzata. In questo esempio, la directory web è in /Volume/DevData/testweb. Salva le modifiche ed esci dall’editor.

Il sito di test in questo esempio è un sito web statico chiamato Dimensions scaricato da HTML5 Up. Questo sito di esempio è gratuito da scaricare e utilizzare, soggetto a La licenza Creative Commons Attribution 3.0.

Changing the default web directory location

4. Ora, riavvia il server NGINX.

nginx

5. Infine, visita l’indirizzo HTTP://localhost:9000 utilizzando il tuo browser web. NGINX sta ora servendo il tuo sito di test dalla tua directory web personalizzata come mostrato nella schermata sottostante.

Testing if NGINX serves a custom web directory location

Attivazione dell’avvio automatico di NGINX per un’installazione basata sulla sorgente

NGINX non si avvia automaticamente per impostazione predefinita, indipendentemente dal metodo di installazione scelto. In fase di sviluppo o di test, l’avvio automatico di NGINX potrebbe non essere necessario. Ma se ne hai bisogno, puoi configurare NGINX per eseguire l’avvio al boot utilizzando il processo launchd.

Puoi abilitare l’avvio automatico di NGINX sia per un’installazione basata sul codice sorgente che su Homebrew. Ma per questa dimostrazione, inizia con l’installazione basata sul codice sorgente.

Per abilitare l’avvio automatico di NGINX per un’installazione basata sul codice sorgente, segui questi passaggi.

1. Esegui il comando touch di seguito per creare un nuovo file property list (PLIST) per NGINX.

La posizione /Library/LaunchDaemons archivia i daemon globali che vengono eseguiti per conto dell’utente root o di un utente specificato. Il nome del file può essere qualsiasi cosa desideri, ma sarebbe utile se il nome del file contenesse il nome del daemon che stai creando.

sudo touch /Library/LaunchDaemons/ata.nginx.plist

2. Ora, apri il file PLIST per modificarlo.

sudo nano /Library/LaunchDaemons/ata.nginx.plist

3. Copia il codice qui sotto e incollalo nell’editor di testo. Salva il file ed esci dall’editor.

In breve, il codice qui sotto definisce un daemon con il nome ata.nginx. Il programma da eseguire è /usr/local/nginx/sbin/nginx e il valore RunAtLoad significa che il programma verrà eseguito durante l’avvio del computer.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
        <key>Label</key>
        <string>ata.nginx</string>
				<key>Program</key>
				<string>/usr/local/nginx/sbin/nginx</string>
        <key>RunAtLoad</key>
        <true/>
</dict>
</plist>

4. Infine, esegui il comando launchctl di seguito per load il daemon. Questo comando avvia NGINX immediatamente. E da questo momento in poi, NGINX si avvierà automaticamente dopo ogni riavvio del computer.

sudo launchctl load -w /Library/LaunchDaemons/ata.nginx.plist

Supponiamo che cambi idea e preferisci disabilitare l’avvio automatico di NGINX, esegui il comando sottostante. Questo comando ferma e disabilita l’avvio automatico del demone NGINX.

sudo launchctl unload -w /Library/LaunchDaemons/ata.nginx.plist

Abilitare l’avvio automatico di NGINX per un’installazione basata su Homebrew

A differenza dell’installazione basata sul codice sorgente, per l’installazione di NGINX basata su Homebrew, è sufficiente eseguire un solo comando per abilitare o disabilitare il comportamento di avvio automatico di NGINX. Comodo, vero?

Esegui il comando sottostante per abilitare l’avvio automatico di NGINX. Il comando start avvia immediatamente NGINX e lo registra per essere avviato all’avvio.

sudo brew services start nginx

Dopo aver eseguito il comando, otterrai un output simile all’immagine qui sotto.

Starting the NGNIX service

Per disabilitare lo stato di avvio automatico di NGINX, esegui il comando sottostante. Come puoi vedere, l’unica parte del comando da modificare è da start a stop. Questo comando esce anche dal server NGINX in modo sicuro immediatamente.

sudo brew services stop nginx

Conclusione

Ecco fatto! Configurare NGINX su Mac è un modo sicuro per avere un server web in esecuzione in poco tempo per scopi di test. Hai opzioni di installazione basate sui requisiti del tuo sistema e la personalizzazione delle impostazioni è rapida tramite file di configurazione in testo semplice: non sono necessari strumenti speciali.

NGINX non limita i test e l’esecuzione a un singolo sito web. Puoi eseguire contemporaneamente più domini e siti web di sviluppo senza interferenze reciproche. Oppure, se ti senti avventuroso, puoi eseguire NGINX in Docker su Mac!

Source:
https://adamtheautomator.com/nginx-on-mac/