Comment Configurer NGINX sur Mac pour les Tests

Avez-vous besoin de tester le site que vous développez mais n’avez qu’un Mac à disposition ? Vous n’avez pas besoin de créer un serveur séparé ou une machine virtuelle uniquement pour tester votre site. Une option rapide consiste à installer NGINX sur Mac, et vous devriez avoir un serveur web opérationnel directement sur votre ordinateur.

Restez avec nous et apprenez comment installer et configurer NGINX sur Mac. Vous découvrirez quelques façons différentes d’installer NGINX, afin que vous puissiez choisir la méthode qui vous convient. Vous apprendrez également les éléments de configuration de base pour vous aider à commencer les tests.

Prérequis

Ce tutoriel sera une démonstration pratique. Si vous souhaitez suivre, assurez-vous d’avoir les éléments suivants :

Installation de NGINX sur Mac

Il existe deux méthodes pour installer NGINX sur Mac : en compilant la source ou avec un gestionnaire de packages. Mais une méthode d’installation n’est pas meilleure que l’autre. Le choix de la méthode dépendra de vos besoins.

Dans les sections suivantes, vous apprendrez comment effectuer les deux méthodes d’installation de NGINX.

Méthode 1 : Compilation et Installation à partir de la Source

La compilation et l’installation de NGINX à partir de la source vous donnent la flexibilité d’inclure des modules ou des correctifs de sécurité dans votre installation NGINX. Par exemple, vous pouvez compiler NGINX pour inclure le module Protocole de messagerie en temps réel (RTMP) si vous configurez un serveur de streaming.

La personnalisation nécessite plusieurs étapes et comprend l’installation manuelle des dépendances. Suivez ces étapes pour installer NGINX sur Mac à partir des sources.

1. Ouvrez un terminal sur votre Mac.

2. Exécutez la commande ci-dessous pour créer un répertoire de travail dans votre dossier personnel. Ce répertoire contiendra tous les fichiers sources nécessaires à l’installation de NGINX.

# Créez un dossier source dans votre répertoire personnel
mkdir ~/src && cd ~/src

3. Ensuite, exécutez les commandes ci-dessous pour télécharger (curl) et extraire (tar) la dernière version des Expressions Régulières Compatibles Perl (PCRE). Les modules Core et Rewrite de NGINX nécessitent PCRE. La dernière version de PCRE au moment de la rédaction de cet article est 8.45.

# Téléchargez et extrayez les sources de 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. Exécutez chaque commande ci-dessous pour télécharger (curl) les sources d’OpenSSL afin d’ajouter la prise en charge SSL. Cette ajout est un exemple de personnalisation de la construction de NGINX. La dernière version d’OpenSSL au moment de la rédaction de cet article est 1.1.1m.

# Téléchargez et extrayez les fichiers sources d'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. Après avoir téléchargé les exigences, exécutez les commandes ci-dessous pour télécharger (curl) et extraire (tar) la source NGINX. La dernière version stable au moment de l’écriture est 1.20.2.

# Télécharger et extraire les fichiers sources de 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
# Lister les fichiers/dossiers dans le répertoire de travail
ls -l

À ce stade, vous devriez maintenant avoir trois nouveaux répertoires au total, comme indiqué ci-dessous.

Listing the source folders

6. Maintenant, exécutez les commandes ci-dessous pour compiler (make) et installer NGINX.

# Entrer dans le dossier source de NGINX
cd nginx-1.20.2

# Créer la configuration NGINX
## Paramètres :
## --with-pcre=../pcre-8.45/ : Spécifie l'emplacement de la source PCRE
## --with-http_ssl_module : Active le support HTTPS
## --with-openssl=../openssl-1.1.1m/ : Spécifie la source OpenSSL. Requis par le module http_ssl_module
./configure --with-pcre=../pcre-8.45/ --with-http_ssl_module --with-openssl=../openssl-1.1.1m/

# Compiler NGINX
make
# Installer NGINX
sudo make install

7. Ensuite, exécutez la commande ci-dessous pour ajouter le chemin de NGINX au $PATH du système en ajoutant le chemin complet /usr/local/nginx à /etc/paths. Après cette étape, vous pouvez exécuter les commandes nginx sans spécifier le chemin complet.

# Ajoutez NGINX au fichier /etc/paths
echo /usr/local/nginx/sbin | sudo tee -a /etc/paths

8. Quittez le terminal en appuyant sur CMD+Q et ouvrez une nouvelle session de terminal pour appliquer le nouveau $PATHS.

9. Exécutez la commande nginx ci-dessous pour démarrer NGINX, car le serveur NGINX ne démarre pas automatiquement après l’installation.

sudo nginx

10. Enfin, confirmez que NGINX est en cours d’exécution. Ouvrez une fenêtre de navigateur Web et saisissez l’adresse HTTP://localhost. Vous devriez voir la page de bienvenue par défaut de NGINX comme celle ci-dessous.

L’installation de NGINX à partir de la source définit le port d’écoute par défaut sur 80.

Accessing the NGINX default web page

Étant donné que vous avez installé NGINX sur Mac à partir de la source en tant que root, vous devrez préfixer chaque commande nginx avec sudo à partir de maintenant.

Méthode 2: Installation de NGINX avec Homebrew

L’installation de NGINX avec Homebrew est plus pratique et moins sujette aux erreurs. Cette méthode installe automatiquement les dépendances. Si vous n’avez pas besoin de personnaliser l’installation de NGINX, cette méthode est l’option la plus rapide et ne nécessite qu’une seule commande pour installer!

Pour installer NGINX sur Mac avec Homebrew, procédez comme suit.

1. Ouvrez une nouvelle session de terminal.

2. Exécutez la commande brew ci-dessous pour installer NGINX.

brew install nginx

Pouvez-vous installer NGINX en tant que root avec Homebrew ? – Non (pas officiellement). La commande d’installation de brew refuse de s’exécuter avec le préfixe sudo. Si vous essayez, vous obtiendrez le message d’erreur ci-dessous.

“Er” ou : Exécuter Homebrew en tant que root est extrêmement dangereux et n’est plus pris en charge. Comme Homebrew ne réduit pas les privilèges lors de l’installation, vous donneriez à tous les scripts de construction un accès complet à votre système.

3. Après l’installation, invoquez la commande ci-dessous pour démarrer NGINX. Cette commande exécute NGINX en tant que démon en arrière-plan.

Par défaut, Homebrew installe NGINX dans /usr/local/Cellar/nginx/<version> et crée des liens symboliques dans /usr/local/opt/. L’exécutable nginx a un lien symbolique dans /usr/local/bin et ce dossier est déjà inclus dans le $PATH.

nginx

Pour exécuter NGINX sans service en arrière-plan, exécutez plutôt la commande ci-dessous. Cette commande émet une directive globale pour ne PAS exécuter nginx en tant que démon.

nginx -g “da” mon off;”

Vous pouvez arrêter NGINX en appuyant sur CTRL+C dans le terminal dans ce mode.

4. Enfin, invoquez la commande curl ci-dessous pour confirmer que NGINX fonctionne maintenant.

L’installation de NGINX via Homebrew définit le port d’écoute par défaut à 8080. Cet affectation de port par défaut garantit que vous pouvez exécuter nginx sans sudo.

curl HTTP://localhost:8080

Comme vous pouvez le voir ci-dessous, la commande curl a téléchargé la page web NGINX par défaut, ce qui indique que le serveur est en cours d’exécution.

Testing NGINX with curl

Configuration de NGINX pour les tests

Jusqu’à présent, vous avez installé NGINX, mais il fonctionne toujours avec les paramètres par défaut. Il y a quelques changements fondamentaux que vous pourriez envisager avant de commencer à tester votre site web.

Voulez-vous que NGINX démarre automatiquement avec le démarrage de l’ordinateur ? Où stockerez-vous les fichiers pour le site Web que vous testez ? Faut-il conserver l’assignation du port d’écoute par défaut ?

Ce sont quelques-uns des éléments que vous devrez configurer après l’installation de NGINX, que vous apprendrez à configurer dans les sections suivantes.

Les sections suivantes présentent les étapes du fichier de configuration NGINX installé avec Homebrew, sauf indication contraire dans les instructions.

Personnalisation du port d’écoute du serveur

En fonction de la méthode d’installation, le port d’écoute par défaut sera soit 80, soit 8080. Le port 8080 est généralement acceptable pour les tests et le développement. Mais vous voudrez peut-être toujours changer le numéro de port dans certains cas, peut-être en raison d’un conflit avec d’autres services, ou simplement parce que vous en avez envie.

Quelle que soit votre raison, suivez les étapes ci-dessous pour changer le port d’écoute par défaut de NGINX.

1. Tout d’abord, exécutez la commande ci-dessous pour envoyer le signal d’arrêt (-s stop) pour vous assurer que NGINX ne fonctionne pas. nginx -s stop

nginx -s stop

2. Ensuite, exécutez la commande nginx ci-dessous pour découvrir le chemin du fichier de configuration NGINX.

nginx -t

Le résultat ci-dessous montre que le fichier de configuration se trouve à /usr/local/etc/nginx/nginx.conf.

Testing the NGINX configuration file

3. Ouvrez le fichier de configuration dans votre éditeur de texte préféré, tel que nano, dans l’exemple ci-dessous.

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

4. Maintenant, localisez la ligne listen à l’intérieur du bloc server {}. Comme vous pouvez le voir ci-dessous, la valeur du port d’écoute est 8080.

NGINX listening port number

5. Modifiez le numéro de port d’écoute listen par une autre valeur de port unique, telle que 9000, dans cet exemple. Enregistrez les modifications et quittez le fichier.

Changing the listening port number

6. Maintenant, relancez la commande nginx ci-dessous pour redémarrer NGINX.

nginx

7. Enfin, ouvrez une nouvelle fenêtre de navigateur et accédez à HTTP://localhost:9000. NGINX devrait maintenant servir le site Web sur le port 9000, comme indiqué ci-dessous.

NGINX running on port 9000

Pointant vers votre répertoire web de développement

Par défaut, l’installation de NGINX sur Mac sert le répertoire web depuis /usr/share/nginx/html (installé depuis la source) ou /usr/local/Cellar/nginx/<version>/html (installé avec Homebrew).

Mais que faire si les fichiers de votre site Web se trouvent ailleurs, peut-être sur un autre lecteur? Ne vous inquiétez pas. Suivez les étapes ci-dessous pour indiquer à NGINX le répertoire web de développement.

1. Tout d’abord, exécutez les commandes ci-dessous pour arrêter NGINX et ouvrir le fichier de configuration dans l’éditeur de texte, comme vous l’avez fait dans la section « Personnalisation du port d’écoute du serveur » (étapes un à trois).

# Arrêter NGINX
nginx -s stop
# Exécuter un test pour trouver le fichier de configuration
nginx -t
# Ouvrir le fichier de configuration pour l'édition
nano /usr/local/etc/nginx/nginx.conf

2. Dans l’éditeur de texte, recherchez la ligne qui dit root html; à l’intérieur du bloc server {}.

The default web directory location

3. Modifiez la valeur de root et changez-la par votre dossier personnalisé. Dans cet exemple, le répertoire web se trouve à /Volume/DevData/testweb. Enregistrez les modifications et quittez l’éditeur.

Le site de test dans cet exemple est un site statique appelé Dimensions téléchargé depuis HTML5 Up. Ce site d’exemple est gratuit à télécharger et à utiliser, sous réserve de la licence Creative Commons Attribution 3.0.

Changing the default web directory location

4. Maintenant, redémarrez le serveur NGINX.

nginx

5. Enfin, accédez à l’adresse HTTP://localhost:9000 à l’aide de votre navigateur web. NGINX sert désormais votre site de test depuis votre répertoire web personnalisé comme illustré ci-dessous.

Testing if NGINX serves a custom web directory location

Activation de l’autodémarrage de NGINX pour une installation basée sur la source

NGINX ne démarre pas automatiquement par défaut, quelle que soit la méthode d’installation choisie. En développement ou en test, l’autodémarrage de NGINX peut ne pas être une nécessité. Mais si vous en avez besoin, vous pouvez configurer NGINX pour qu’il s’exécute au démarrage en utilisant le processus launchd.

Vous pouvez activer le démarrage automatique de NGINX pour une installation basée sur la source ou sur Homebrew. Mais pour cette démo, commencez par l’installation basée sur la source.

Pour activer le démarrage automatique de NGINX pour une installation basée sur la source, suivez ces étapes.

1. Exécutez la commande touch ci-dessous pour créer un nouveau fichier de liste de propriétés (PLIST) pour NGINX.

L’emplacement /Library/LaunchDaemons stocke les démons globaux qui s’exécutent au nom de l’administrateur ou d’un utilisateur spécifié. Le nom du fichier peut être n’importe quoi, mais il serait utile que le nom du fichier contienne le nom du démon que vous créez.

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

2. Maintenant, ouvrez le fichier PLIST pour l’éditer.

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

3. Copiez le code ci-dessous et collez-le dans l’éditeur de texte. Enregistrez le fichier et quittez l’éditeur.

En bref, le code ci-dessous définit un démon avec le nom ata.nginx. Le programme à exécuter est /usr/local/nginx/sbin/nginx et la valeur RunAtLoad signifie que le programme s’exécutera lors du démarrage de l’ordinateur.

<?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. Enfin, exécutez la commande launchctl ci-dessous pour load le démon. Cette commande démarre NGINX immédiatement. Et à partir de ce moment, NGINX démarrera automatiquement après chaque redémarrage de l’ordinateur.

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

Supposons que vous changiez d’avis et préfériez désactiver le démarrage automatique de NGINX, exécutez la commande ci-dessous. Cette commande arrête et désactive le démarrage automatique du démon NGINX.

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

Activation du démarrage automatique de NGINX pour une installation basée sur Homebrew

Contrairement à une installation basée sur la source, pour une installation NGINX basée sur Homebrew, vous n’avez besoin que d’exécuter une commande pour activer ou désactiver le comportement de démarrage automatique de NGINX. N’est-ce pas pratique ?

Exécutez la commande ci-dessous pour activer le démarrage automatique de NGINX. La commande start lance immédiatement NGINX et l’enregistre pour se lancer au démarrage.

sudo brew services start nginx

Après avoir exécuté la commande, vous obtiendrez une sortie similaire à l’image ci-dessous.

Starting the NGNIX service

Pour désactiver l’état de démarrage automatique de NGINX, exécutez la commande ci-dessous. Comme vous pouvez le voir, la seule partie de la commande à changer est de start à stop. Cette commande arrête également le serveur NGINX de manière élégante immédiatement.

sudo brew services stop nginx

Conclusion

Et voilà ! Configurer NGINX sur Mac est un moyen infaillible d’avoir un serveur web opérationnel en un rien de temps pour les tests. Vous avez des options d’installation en fonction de vos besoins de configuration, et la personnalisation de ses paramètres est rapide grâce à des fichiers de configuration en texte brut – aucun outil spécial n’est nécessaire.

NGINX ne limite pas les tests et l’exécution à un seul site web uniquement. Vous pouvez exécuter simultanément plusieurs domaines de développement et sites web sans interférer les uns avec les autres. Ou si vous vous sentez aventureux, vous pourriez également exécuter NGINX dans Docker sur Mac !

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