Depuis son lancement il y a plus de 15 ans, NGINX n’a cessé de gagner en popularité et est aujourd’hui le serveur web le plus populaire au monde, assurant le fonctionnement de plus de [ngx_snippet name=’number-sites’] sites web. Dans ce cas, nous pensons qu’il est judicieux de suivre le mouvement et d’utiliser NGINX pour tous vos besoins en matière de services web, tout en tirant parti de ses fonctionnalités de proxy inverse, de cache de contenu, de répartiteur de charge, de passerelle API, et bien plus encore.
Cet article de blog vous explique comment installer et exécuter NGINX sur Ubuntu 20.04 dans Amazon Web Services (AWS), au sein d’un environnement facile à utiliser qui ne modifie pas les paramètres de votre ordinateur personnel. Il couvre à la fois NGINX et NGINX Plus, la version bénéficiant d’un support commercial et dotée de fonctionnalités supplémentaires adaptées aux entreprises.
Une fois les étapes décrites ici terminées, vous souhaiterez peut-être poursuivre avec la formation NGINX Core (avec instructeur ou à la demande), une formation d’une journée complète au cours de laquelle vous apprendrez à configurer, administrer et gérer NGINX. Cette formation vous prépare également à nos autres formations sur des sujets avancés, proposées avec instructeur ou en autoformation.
Le tutoriel fournit des instructions pour effectuer les tâches suivantes :
- Configurer AWS
- Installation du logiciel NGINX
- Ouverture de votre page web
- Configuration des fichiers d’exemple
- Diffusion de pages et d’images
- Configurer un serveur proxy
Accéder à un terminal
Pour suivre ce tutoriel, vous avez besoin d’un terminal pour vous connecter à votre instance Amazon Elastic Compute Cloud (EC2). Les Mac disposent d’un terminal intégré, mais les utilisateurs de Windows doivent télécharger PuTTY ou un outil équivalent. Si vous préférez utiliser votre propre terminal local pour configurer NGINX ou NGINX Plus et diffuser du contenu web, vous pouvez passer directement à la section « Configuration d’AWS ».
Accéder à un terminal sous macOS
Sur Mac, vous pouvez utiliser l’outil intégré « Terminal » pour suivre l’intégralité de ce tutoriel.
- Cliquez sur l’icône en forme de loupe située à l’extrémité droite de la barre supérieure de l’écran.
- Saisissez «
terminal» dans la fenêtre contextuelle et appuyez sur Entrée. Une fenêtre de terminal distincte s’ouvre.
Accéder à un terminal sous Windows
Windows n’intègre pas de terminal par défaut. Vous devez donc en télécharger un sur Internet. Tout comme AWS, nous vous recommandons PuTTY, un client ssh utilisé dans le monde entier.
- Accédez à la page de téléchargement de PuTTY.
- Téléchargez et installez le fichier à l’emplacement de votre choix, puis ouvrez-le. Vous ne pourrez toutefois pas accéder au terminal proprement dit avant d’avoir terminé les étapes de la section « Configuration d’AWS ».
Configurer AWS
Dans ce tutoriel, nous partons du principe que vous disposez d’un Amazon Virtual Private Cloud (VPC) et que vous pouvez simplement utiliser la configuration VPC par défaut créée avec la plupart des comptes. Dans cette section, vous configurez votre déploiement AWS en créant une instance EC2 et en vous y connectant.
Remarque : La procédure et les captures d’écran suivantes relatives à la création d’une instance EC2 ont été vérifiées au moment de la rédaction, mais sont susceptibles d’être modifiées par AWS. Adaptez les instructions si nécessaire.
- Sur la page d’accueil d’AWS, connectez-vous à la console AWS Management Console ou, si nécessaire, commencez par créer un compte.
- Cliquez sur Services dans la barre de titre de la console, puis sur EC2 dans la section Calcul.

- Sur la page du tableau de bord EC2 qui s’ouvre, cliquez sur le bouton Launch Instance.
- Sur la page « Étape 1 », cliquez sur le bouton Sélectionner dans la ligne « Ubuntu Server 20.04 LTS (HVM), SSD Volume Type » et conservez l’architecture 64 bits (x86) sélectionnée par défaut.

- Sur la page Étape 2, sélectionnez le type d’instance t2.micro, qui, à l’heure où nous écrivons ces lignes, est indiqué comme éligible à l’offre gratuite et sélectionné par défaut. Cliquez sur le bouton Suivant : Configurer les détails de l’instance.

- Sur la page de l’étape 3, vérifiez que le VPC que vous souhaitez utiliser est sélectionné dans le champ Réseau et que le champ Attribution automatique d’une adresse IP publique est défini soit sur le paramètre par défaut Utiliser le paramètre du sous-réseau (Activer), soit sur Activer. Conservez les valeurs par défaut pour tous les autres paramètres.

- Cliquez sur « 6. Configure Security Group » en haut de la page.
- Sur la page « Étape 6 », procédez comme suit pour autoriser le trafic HTTP et HTTPS entrant (par défaut, les instances EC2 n’acceptent que le trafic SSH) :

- Cliquez sur le bouton Ajouter une règle sous le tableau, puis sélectionnez HTTP dans le menu déroulant de la colonne Type (Type). Dans le cadre de ce tutoriel, nous autorisons l’accès depuis n’importe quelle adresse IP (la valeur de la colonne Source est Anywhere 0.0.0.0/0, ::/0). Pour les environnements de production, nous vous recommandons de suivre l’avertissement affiché sur la page, qui impose l’utilisation de groupes de sécurité pour contrôler l’accès.
- Répétez l’étape précédente pour HTTPS.
- Cliquez sur le bouton « Vérifier et lancer » en bas de la page.
- Sur la page de l’étape 7 , cliquez sur le bouton Lancer en bas de la page.
- Dans la boîte de dialogue qui s’affiche, créez une nouvelle paire de clés :

- Sélectionnez Créer une nouvelle paire de clés dans le menu déroulant supérieur.
- Sélectionnez un type de paire de clés. Dans ce tutoriel, nous sélectionnons RSA.
- Saisissez un nom dans le champ Nom de la paire de clés, par exemple NGINX_key.
- Cliquez sur le bouton Télécharger la paire de clés.
- Comme illustré dans la capture d’écran animée ci-dessous, une case à cocher remplace le bouton Télécharger la paire de clés. Cochez-la pour indiquer que vous avez accès à la clé privée.
- Cliquez sur le bouton Lancer les instances.
- Dans votre gestionnaire de fichiers, déplacez le fichier .pem téléchargé (dans ce tutoriel, NGINX_key.pem) vers un emplacement sécurisé. Dans le cadre de ce tutoriel, nous le plaçons dans le répertoire /Desktop/NGINX.
- Si vous utilisez un terminal Windows, suivez les instructions d’AWS pour télécharger l’utilitaire PuTTYgen et convertir le fichier .pem en fichier .ppk.
- Sur la page État du lancement, cliquez sur le bouton Afficher les instances en bas de la page.
- Sur la page Instances qui s’ouvre, la nouvelle instance apparaît dans le tableau. Donnez-lui un nom :

- Cliquez sur l’icône en forme de crayon dans la colonne « Nom ».
- Saisissez le nom dans la fenêtre contextuelle « Modifier le nom », puis cliquez sur le bouton Enregistrer.
- Cliquez sur le bouton « Connect » en haut de l’écran. Une fenêtre semblable à celle ci-dessous s’affiche. Ouvrez l’onglet du client SSH et suivez les instructions pour vous connecter à l’instance. Si vous utilisez Windows, remplacez .ppk par .pem dans les commandes.

Installation du logiciel NGINX
Maintenant que votre environnement AWS est configuré, il est temps d’installer soit NGINX Open Source soit NGINX Plus, que vous pouvez essayer gratuitement pendant 30 jours. Les deux options conviennent dans le cadre de ce tutoriel, mais si vous souhaitez explorer davantage les fonctionnalités avancées de NGINX Plus, demandez un essai gratuit.
Installation de NGINX Open Source
La plupart des distributions Linux et des variantes de BSD proposent NGINX Open Source dans leurs dépôts de paquets standard, mais il ne s’agit généralement pas de la dernière version. Nous vous recommandons de télécharger NGINX Open Source directement depuis nginx.org. Quelques étapes supplémentaires suffisent pour ajouter le dépôt NGINX au gestionnaire de paquets d’Ubuntu (apt).
Pour installer NGINX Open Source, procédez comme suit :
- Accédez à votre terminal.
- Téléchargez la clé de signature NGINX :
$ sudo wget http://nginx.org/keys/nginx_signing.key- Ajoutez la clé :
$ sudo apt-key add nginx_signing.key- Accédez au répertoire « /etc/apt ».
$ cd /etc/apt- Modifiez le fichier « sources.list » en ajoutant ce texte à la fin :
deb http://nginx.org/packages/ubuntu focal nginx
deb-src http://nginx.org/packages/ubuntu focal nginx- Remarque : Le mot-clé «
focal» figurant dans chacune de ces lignes correspond à Ubuntu 20.04. Si vous utilisez une autre version d’Ubuntu, remplacez-le par le premier mot de son nom de code (par exemple, «bionic» pour Ubuntu 18.04). - Mettez à jour le logiciel NGINX :
$ sudo apt-get update- Installez NGINX :
$ sudo apt-get install nginx- Saisissez «
Y» lorsque vous y êtes invité. - Démarrez NGINX :
$ sudo systemctl start nginx.service- Vérifiez son statut :
$ sudo systemctl status nginx.service- Passez à la section « Ouverture de votre page Web ».
Installation de NGINX Plus
- Si vous ne disposez pas encore de NGINX Plus, inscrivez-vous pour bénéficier d’un essai gratuit de 30 jours.
- Lorsque vous recevez l’e-mail vous informant que votre abonnement d’essai est disponible, suivez les instructions fournies pour télécharger votre certificat de sécurité, votre clé privée et votre JWT, puis installer NGINX Plus.
- Une fois l’installation terminée et NGINX Plus en cours d’exécution, passez à la section « Ouverture de votre page Web ».
Ouverture de votre page Web
Maintenant que vous avez démarré le logiciel NGINX, consultez la page Web que NGINX et NGINX Plus affichent par défaut avant de les configurer pour diffuser le contenu de votre site. Procédez comme suit :
- Accédez à l’onglet « Instances » du tableau de bord EC2 si vous n’y êtes pas déjà. (Pour ce faire, vous pouvez cliquer sur « Services » dans la barre de navigation supérieure de la console, sur « EC2 » dans la section « Compute », puis sur « Instances » dans la colonne de navigation de gauche.)
- Faites défiler le tableau vers la droite jusqu’à ce que l’adresse IP publique de l’instance apparaisse dans la colonne Adresse IPv4 publique (dans la capture d’écran, il s’agit de 3.22.51.xxx). Sélectionnez l’adresse et copiez-la dans le presse-papiers.

- Ouvrez un nouvel onglet dans votre navigateur et collez l’adresse dans la barre d’adresse. La page par défaut Welcome to nginx! s’affiche, indiquant que NGINX est installé et en cours d’exécution, mais qu’il n’est pas encore configuré.

Configuration des fichiers d’exemple
Maintenant qu’une version opérationnelle de NGINX ou NGINX Plus est installée, il est temps de la mettre à profit ! Commencez par configurer quelques fichiers et répertoires.
- Accédez à votre répertoire personnel si vous ne vous y trouvez pas déjà. Dans les instructions suivantes, il s’agit de « /home/ubuntu ».
- Créez un répertoire nommé « public_html », puis placez-vous dans celui-ci.
- Dans le répertoire public_html, créez un fichier nommé index.html et un répertoire nommé application1.
- Dans le répertoire application1, créez un fichier nommé app1.html et ajoutez-y du texte.
- Revenez à votre répertoire personnel.
- Créez un répertoire nommé « data ».
- Dans le répertoire « data », créez un répertoire nommé « images ».
Diffusion de pages et d’images
Notre premier cas d’utilisation de NGINX ou NGINX Plus consiste à fournir des pages et des images aux utilisateurs par l’intermédiaire d’une page web.
- Accédez au répertoire « /etc/nginx/conf.d ».
- Renommez default.conf en default.conf.bak afin d’empêcher NGINX ou NGINX Plus de l’utiliser comme fichier de configuration par défaut.
- Créez un fichier nommé server1.conf contenant la configuration suivante :
server { root /home/ubuntu/public_html;
location /application1 { }
location /images {
root /home/ubuntu/data;
}
}- Documentation des directives :
location,root,server - Accédez au répertoire « ~/data/images ».
- Trouvez une image que vous souhaitez diffuser et copiez-la dans le répertoire (~/data/images). Par exemple, la commande suivante copie le logo NGINX :
$ curl -o NGINX-logo.png https://www.nginx.com/wp-content/uploads/2021/11/NGINX-logo-2020.png- Rechargez NGINX ou NGINX Plus :
$ sudo nginx -s reload- Dans un navigateur web, demandez l’image à l’URL suivante, où NGINX-server correspond à l’adresse IP publique de votre instance EC2 : https://NGINX-server/images/NGINX-logo.png
- Accédez également à l’application et observez le résultat obtenu : https://NGINX-server/application1/app1.html
Configuration d’un serveur proxy
Maintenant que vous disposez d’un serveur web opérationnel, il est temps d’apprendre à le configurer pour acheminer le trafic. Cette fonctionnalité vous permet de rediriger le trafic vers d’autres serveurs et constitue une étape importante dans la mise en place de l’équilibrage de charge. Suivez ces étapes :
- Dans le répertoire ~/data, créez un répertoire nommé server2.
- Dans le répertoire server2, créez un répertoire nommé sampleApp.
- Dans le répertoire sampleApp, créez un fichier nommé index.html et ajoutez-y du texte.
- Accédez au répertoire « /etc/nginx/conf.d ».
- Créez un fichier nommé « server2.conf » avec la configuration suivante :
server { listen 8080;
root /home/ubuntu/data/server2;
}- Documentation des directives :
listen,root,server - Modifiez server1.conf en ajoutant une directive
proxy_passdans le premier bloclocationcomme suit :
server { root /home/ubuntu/public_html;
location /application1 {
proxy_pass http://localhost:8080/sampleApp;
}
location /images {
root /home/ubuntu/data;
}
}- Documentation des directives :
location,proxy_pass,root,server - Rechargez NGINX ou NGINX Plus :
$ sudo nginx -s reload- Accédez à l’URL suivante dans votre navigateur et observez les changements par rapport à votre précédente consultation dans « Diffusion de pages et d’images » : https://NGINX-server/application1/index.html
Et voilà ! Vous disposez maintenant d’une instance Ubuntu fonctionnelle exécutant NGINX, prête à servir de serveur proxy.
Pour obtenir des instructions sur le déploiement de NGINX et NGINX Plus sur AWS pour d’autres cas d’utilisation, consultez nos guides de déploiement.
Conclusion
Dans ce tutoriel, vous avez appris à configurer NGINX ou NGINX Plus pour diffuser des fichiers et des images sur Internet, ainsi qu’à l’utiliser comme proxy inverse. Si vous souhaitez approfondir vos connaissances sur NGINX, nous proposons la formation NGINX Core (avec un formateur ou à la demande), qui aborde les sujets de ce tutoriel ainsi que d’autres notions essentielles relatives aux services web et à la mise à disposition d’applications, notamment l’équilibrage de charge, le routage basé sur l’emplacement et la sécurité. Consultez également la documentation sur nginx.org et le Guide d’administration de NGINX Plus : sauf indication contraire, les articles s’appliquent aussi bien à NGINX Open Source qu’à NGINX Plus.
À propos de l’auteur
Articles de blog associés

Tendances actuelles des technologies cloud natives, de l’ingénierie de plateforme et de l’IA
Découvrez les principaux enseignements tirés des réponses à l’enquête annuelle F5 NGINX sur les dernières tendances en matière de technologies cloud natives, de sécurité, d’ingénierie de plateforme et d’IA.
Quels contrôleurs Ingress NGINX sont affectés par les vulnérabilités CVE-2022-4886, CVE-2023-5043 et CVE-2023-5044 ?
Lorsque de nouvelles CVE sont signalées, il est facile de ne plus savoir si elles concernent un outil de contrôleur Ingress NGINX particulier, car il existe plusieurs projets. Cet article présente les CVE et explique comment distinguer les différents projets de contrôleurs Ingress afin de dissiper toute confusion.
Votre API est-elle en temps réel ? Testez sa latence avec l’outil rtapi de NGINX
Votre API répond-elle aux requêtes en moins de 30 ms ? Si ce n’est pas le cas, il ne s’agit pas d’une API en temps réel offrant la faible latence exigée par la grande majorité des organisations. Mesurez la latence de votre API avec l’outil rtapi de NGINX et découvrez comment NGINX peut l’aider à offrir une réactivité en temps réel.

Un testeur d’expressions régulières pour NGINX et NGINX Plus
Le testeur d’expressions régulières (regex) pour NGINX et NGINX Plus vous évite de tâtonner en vous indiquant si une expression régulière utilisée dans un bloc location ou map correspond aux valeurs comme prévu. Il génère la configuration appropriée et affiche les valeurs des groupes de capture.
Caches partagés avec les clusters de cache NGINX Plus, partie 1
Optimisez la capacité de votre cache web en le répartissant entre plusieurs serveurs de cache web NGINX ou NGINX Plus. Découvrez comment procéder dans cet article.
Introduction aux microservices
Les microservices suscitent actuellement beaucoup d’intérêt. Cet article de blog est le premier d’une série de sept consacrée à la conception, au développement et au déploiement de microservices.