BLOG | NGINX

Tutoriel : Configuration de NGINX et NGINX Plus en tant que serveur Web et proxy inverse dans AWS

NGINX-Partie-de-F5-horiz-black-type-RGB
Vignette d'Aidan Carson
Aidan Carson
Publié le 12 novembre 2021

Depuis son introduction il y a plus de 15 ans, NGINX a gagné en popularité de manière constante et est désormais le serveur Web le plus populaire au monde , alimentant plus de [ngx_snippet name='number-sites'] sites Web . Dans ce cas, nous pensons qu'il est judicieux de suivre l'exemple et d'utiliser NGINX pour tous vos besoins de service Web , et en plus de profiter de ses capacités en tant que proxy inverse , cache de contenu , équilibreur de charge , passerelle API , etc.

Cet article de blog vous guide dans la mise en place et le fonctionnement de NGINX sur Ubuntu 20.04 sur Amazon Web Services (AWS) dans une configuration facile à utiliser qui n'affecte pas les paramètres de votre ordinateur personnel. Il couvre à la fois NGINX et NGINX Plus , la version commercialement prise en charge avec des fonctionnalités supplémentaires de niveau entreprise.

Une fois que vous avez terminé les étapes indiquées ici, vous souhaiterez peut-être poursuivre avec la formation NGINX Core ( dirigée par un instructeur ou à la demande ), un cours d'une journée complète où vous apprendrez à configurer, administrer et gérer NGINX. Le cours vous prépare également à nos autres cours dirigés par un instructeur et à votre rythme sur des sujets avancés .

Le didacticiel comprend des instructions pour ces tâches :

Accéder à un terminal

Pour ce didacticiel, 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, n'hésitez pas à passer à Configuration d'AWS .

Accéder à un terminal sur MacOS

Sur Mac, vous pouvez utiliser l’outil de terminal intégré pour effectuer toutes les opérations décrites dans ce didacticiel.

  1. Cliquez sur l’icône en forme de loupe à l’extrémité droite de la barre supérieure de l’écran.

  2. Tapez terminal dans la boîte contextuelle et appuyez sur Entrée. Une fenêtre de terminal distincte s'ouvre.

Accéder à un terminal sous Windows

Windows n’est pas fourni avec un terminal intégré, vous devez donc en télécharger un depuis Internet. En plus d'AWS, nous recommandons PuTTY, un client ssh utilisé dans le monde entier.

  1. Accédez à la page de téléchargement de PUTTY .

  2. Téléchargez et installez le fichier à l’emplacement de votre choix, puis ouvrez-le. Cependant, vous ne pouvez pas accéder au terminal réel tant que vous n'avez pas terminé les étapes de la configuration d'AWS .

Configuration d'AWS

Dans ce didacticiel, nous supposons 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.

Note: La procédure et les captures d'écran suivantes pour 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.

  1. Sur la page d’accueil AWS , connectez-vous à la console (AWS Management) ou créez d’abord un nouveau compte si nécessaire.

  2. Cliquez sur Services dans la barre de titre de la console, puis sur EC2 dans la section Calcul .

    Capture d'écran montrant la sélection de « EC2 » sur la page « Services » d'AWS

  3. Cliquez sur le bouton Lancer l’instance sur la page du tableau de bord EC2 qui s’ouvre.

  4. Sur la page Étape 1 , cliquez sur le bouton Sélectionner dans la ligne Ubuntu Server 20.04 LTS (HVM), Type de volume SSD et conservez la sélection d’architecture 64 bits (x86) par défaut.

    Capture d'écran de la page « Étape 1 » dans l'assistant de création d'instance Amazon EC2

  5. Sur la page Étape 2 , sélectionnez le type d’instance t2.micro , qui, au moment de la rédaction de cet article, est marqué comme éligible au niveau gratuit et sélectionné par défaut. Cliquez sur Suivant : Configurer les détails de l’instance  bouton.

    Capture d'écran de la page « Étape 2 » de l'assistant de création d'instance Amazon EC2

  6. Sur la page Étape 3 , assurez-vous 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 sur le paramètre par défaut Utiliser le sous-réseau (Activer) ou sur Activer . Laissez le reste des paramètres à leurs valeurs par défaut.

    Capture d'écran de la page « Étape 3 » de l'assistant de création d'instance Amazon EC2

  7. Cliquez sur 6. Configurez le groupe de sécurité en haut de la page.

  8. Sur la page Étape 6 , effectuez les étapes suivantes pour autoriser le trafic HTTP et HTTPS entrant (par défaut, les instances EC2 acceptent uniquement 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 . Pour les besoins de ce tutoriel, nous autorisons l'accès à partir de n'importe quelle adresse IP (la valeur dans la colonne Source est N'importe où 0.0.0.0/0, ::/0 ). Pour les environnements de production, nous vous recommandons de suivre l'avertissement 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 Réviser et lancer en bas de la page.

    Capture d'écran de la page « Étape 6 » dans l'assistant de création d'instance Amazon EC2

  9. Sur la page Étape 7 , cliquez sur le bouton Lancer en bas.

  10. Dans la boîte qui apparaît, 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 le montre la capture d’écran animée ci-dessous, une case à cocher remplace le bouton Télécharger la paire de clés . Cliquez dessus pour indiquer que vous pouvez accéder à la clé privée.

    • Cliquez sur le bouton Lancer les instances .

    Capture d'écran de la fenêtre contextuelle « Sélectionner une paire de clés existante ou créer une nouvelle paire de clés » d'Amazon EC2

  11. Dans votre utilitaire de gestion de fichiers, déplacez le fichier .pem téléchargé (dans le didacticiel, NGINX_key.pem ) vers un emplacement sécurisé. Pour le tutoriel, nous le plaçons dans le répertoire /Desktop/NGINX .

  12. Si vous utilisez un terminal Windows, suivez les instructions AWS pour télécharger l'utilitaire PuTTYgen et convertir le fichier .pem en fichier .ppk .

  13. Sur la page État du lancement , cliquez sur le bouton Afficher les instances en bas.

  14. 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 boîte contextuelle Modifier le nom et cliquez sur le bouton Enregistrer .

    Capture d'écran de la page « Instances » d'Amazon EC2 montrant la modification du nom de l'instance

  15. Cliquez sur le bouton Connecter en haut de l'écran. Une fenêtre comme celle-ci apparaît. Ouvrez l’onglet client SSH et suivez les instructions pour vous connecter à l’instance. Si vous utilisez Windows, remplacez .pem par .ppk dans les commandes.

    Capture d'écran de la fenêtre contextuelle « Se connecter à l'instance » d'Amazon EC2

Installation du logiciel NGINX

Maintenant que votre environnement AWS est configuré, il est temps d'installer NGINX Open Source ou NGINX Plus , que vous pouvez essayer gratuitement pendant 30 jours. Les deux options fonctionnent dans le contexte de ce didacticiel, mais si vous souhaitez explorer davantage les fonctionnalités avancées de NGINX Plus , veuillez demander un essai gratuit.

Installation de NGINX Open Source

La plupart des distributions Linux et des variantes BSD rendent NGINX Open Source disponible dans leurs référentiels de packages standard, mais ce n'est généralement pas la dernière version. Nous vous recommandons de télécharger NGINX Open Source directement depuis nginx.org . Il suffit de quelques étapes supplémentaires pour ajouter le référentiel NGINX au gestionnaire de paquets Ubuntu ( apt ).

Pour installer NGINX Open Source, suivez ces étapes :

  1. Accédez à votre terminal.

  2. Téléchargez la clé de signature NGINX :

    $ sudo wget http://nginx.org/keys/nginx_signing.key
  3. Ajoutez la clé :

    $ sudo apt-key ajouter nginx_signing.key
  4. Changez le répertoire vers /etc/apt .

    $ cd /etc/apt
  5. 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

    Note: Le mot clé focal dans chacune de ces lignes correspond à Ubuntu 20.04. Si vous utilisez une version différente d'Ubuntu, remplacez le premier mot de son nom de code de version (par exemple, bionic pour Ubuntu 18.04).

  6. Mettre à jour le logiciel NGINX :

    $ sudo apt-get update
  7. Installer NGINX :

    $ sudo apt-get install nginx
  8. Tapez Y lorsque vous y êtes invité.

  9. Démarrer NGINX :

    $ sudo systemctl start nginx.service
  10. Vérifiez son statut :

    $ sudo systemctl status nginx.service
  11. Continuez vers l'ouverture de votre page Web .

Installation de NGINX Plus

  1. Si vous n'avez pas encore NGINX Plus, inscrivez-vous pour un essai gratuit de 30 jours .

  2. Lorsque vous recevez la notification par e-mail indiquant 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 pour installer NGINX Plus.

  3. Une fois l’installation terminée et NGINX Plus en cours d’exécution, passez à l’ouverture de votre page Web .

Ouvrir votre page Web

Maintenant que vous avez démarré le logiciel NGINX, examinez la page Web que NGINX et NGINX Plus diffusent par défaut avant de les configurer pour diffuser le contenu de votre site. Suivez ces étapes :

  1. Accédez à l’onglet Instances sur le tableau de bord EC2 si vous n’y êtes pas déjà. (Une façon de procéder consiste à cliquer sur Services dans la barre de navigation supérieure de la console, sur EC2 dans la section Calcul et sur Instances dans la colonne de navigation de gauche.)

  2. Faites défiler le tableau vers la droite jusqu'à ce que vous puissiez voir l'adresse IP publique de l'instance 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 tampon de collage.

    Capture d'écran de la page « Instances » d'Amazon EC2 affichant le champ « Adresse IPv4 publique » pour une instance

  3. Ouvrez un nouvel onglet de navigateur et collez l’adresse dans la barre d’adresse. La page par défaut « Bienvenue sur nginx ! » s'affiche, indiquant que NGINX est installé et en cours d'exécution mais pas encore configuré.

    La page d'accueil confirme que votre proxy inverse et votre serveur Web NGINX sont opérationnels

Configuration des fichiers d'exemple

Avec une version fonctionnelle de NGINX ou NGINX Plus installée, il est temps de l’utiliser à bon escient ! Commencez par configurer certains fichiers et répertoires.

  1. Changez de répertoire vers votre répertoire personnel si vous n'y êtes pas déjà. Dans les instructions suivantes, il s'agit de /home/ubuntu .

  2. Créez un répertoire appelé public_html et accédez-y.

  3. Dans le répertoire public_html , créez un fichier appelé index.html et un répertoire appelé application1 .

  4. Dans le répertoire application1 , créez un fichier appelé app1.html contenant du texte.

  5. Revenez à votre répertoire personnel.

  6. Créez un répertoire appelé data .

  7. Dans le répertoire de données , créez un répertoire appelé images .

Diffusion de pages et d'images

Notre premier cas d'utilisation pour NGINX ou NGINX Plus est de fournir des pages et des images aux utilisateurs via une page Web.

  1. Changez le répertoire vers /etc/nginx/conf.d .

  2. Renommez default.conf en default.conf.bak pour empêcher NGINX ou NGINX Plus de l'utiliser comme fichier de configuration par défaut.

  3. Créez un fichier appelé server1.conf avec cette configuration :

    serveur { racine /home/ubuntu/public_html;
    
    emplacement /application1 { }
    
    emplacement /images { 
    racine /home/ubuntu/data; 
    }
    }

    Documentation des directives : emplacement , racine , serveur

  4. Changer le répertoire vers ~/data/images .

  5. Recherchez une image que vous souhaitez diffuser et copiez-la dans le répertoire ( ~/data/images ). À titre d’exemple, la commande suivante copie le logo NGINX :

    $ curl -o Logo NGINX.png https://www.nginx.com/wp-content/uploads/2021/11/Logo-NGINX-2020.png
  6. Recharger NGINX ou NGINX Plus :

    $ sudo nginx -s recharger
  7. Dans un navigateur Web, demandez l'image à cette URL, où NGINX-server est l'adresse IP publique de votre instance EC2 :

    https:// Serveur NGINX /images/NGINX-logo.png

  8. Accédez également à l'application et observez ce que vous obtenez :

    https:// serveur NGINX /application1/app1.html

Configuration d'un serveur proxy

Maintenant que vous disposez d’un serveur Web fonctionnel, il est temps d’apprendre à le configurer pour acheminer le trafic. Cette fonctionnalité vous permet de transmettre le trafic vers d’autres serveurs et constitue une étape majeure vers la mise en place de l’équilibrage de charge. Suivez ces étapes :

  1. Dans le répertoire ~/data , créez un répertoire appelé server2 .

  2. Dans le répertoire server2 , créez un répertoire appelé sampleApp .

  3. Dans le répertoire sampleApp , créez un fichier nommé index.html contenant du texte.

  4. Changez le répertoire vers /etc/nginx/conf.d .

  5. Créez un fichier appelé server2.conf avec cette configuration :

    serveur { écouter 8080 ;
    root /home/ubuntu/data/server2 ;
    }

    Documentation des directives : listen , root , server

  6. Modifiez server1.conf en ajoutant une directive proxy_pass dans le premier bloc d'emplacement , comme suit :

    serveur { racine /home/ubuntu/public_html;
    
    emplacement /application1 {
    proxy_pass http://localhost:8080/sampleApp;
    }
    
    emplacement /images {
    racine /home/ubuntu/data;
    }
    }

    Documentation des directives : emplacement , proxy_pass , racine , serveur

  7. Recharger NGINX ou NGINX Plus :

    $ sudo nginx -s recharger
  8. Accédez à l'URL suivante dans votre navigateur et observez ce qui a changé par rapport au moment où vous y avez accédé dans Serving Pages and Images :

    https:// serveur NGINX /application1/index.html

Et voilà, c’est tout ! Vous disposez désormais d’une instance Ubuntu fonctionnelle exécutant NGINX, qui est prête à fonctionner en tant que serveur proxy.

Pour obtenir des instructions sur le déploiement de NGINX et NGINX Plus sur AWS pour des cas d'utilisation supplémentaires, consultez nos guides de déploiement .

Conclusion

Dans ce didacticiel, vous avez appris à configurer NGINX ou NGINX Plus pour diffuser des fichiers et des images sur Internet et pour agir comme un proxy inverse. Si vous souhaitez en savoir plus sur NGINX, nous proposons la formation NGINX Core ( dirigée par un instructeur ou à la demande ) qui couvre les sujets de ce didacticiel ainsi que d'autres éléments essentiels du service Web et de la distribution d'applications, notamment l'équilibrage de charge, le routage basé sur la localisation et la sécurité. Consultez également la documentation sur nginx.org et le Guide d’administration NGINX Plus . Sauf indication contraire, les articles s’appliquent à NGINX Open Source ainsi qu’à NGINX Plus.


« Cet article de blog peut faire référence à des produits qui ne sont plus disponibles et/ou qui ne sont plus pris en charge. Pour obtenir les informations les plus récentes sur les produits et solutions F5 NGINX disponibles, explorez notre famille de produits NGINX . NGINX fait désormais partie de F5. Tous les liens NGINX.com précédents redirigeront vers un contenu NGINX similaire sur F5.com."