Utiliser NGINX est une option très répandue et vivement re­com­man­dée pour ses per­for­mances, sa flexi­bi­lité et sa capacité à sécuriser les con­nexions. Pour mettre en place cette solution, il suffit d’installer NGINX, de créer un fichier de con­fi­gu­ra­tion et d’adapter les pa­ra­mètres du serveur. De plus, vous pouvez tester la con­fi­gu­ra­tion de votre reverse proxy en utilisant Gunicorn.

Installer et con­fi­gu­rer un reverse proxy NGINX sous Ubuntu 22.04

Pour disposer d’un serveur Internet sécurisé, flexible et peu gourmand en res­sources, le recours à un reverse proxy peut être judicieux. Celui-ci s’intercale entre le client et le serveur Ubuntu, sans que les visiteurs s’aper­çoi­vent de l’uti­li­sa­tion du médiateur de requêtes. Aussi, le NGINX reverse proxy est-il une solution très ap­pré­ciable pour toutes les requêtes entrantes. Dé­cou­vrons ensemble comment l’installer et le con­fi­gu­rer sous Ubuntu 22.04.

Conseil

Dans notre Digital Guide, vous trouverez également des ins­truc­tions sur l’ins­tal­la­tion de NGINX sous Ubuntu 20.04 et des ex­pli­ca­tions dé­tail­lées sur ce qu’est un serveur proxy.

Quelles sont les con­di­tions préa­lables à une ins­tal­la­tion réussie ?

Pour pouvoir con­fi­gu­rer un NGINX reverse proxy sous Ubuntu 22.04, les éléments suivants sont in­dis­pen­sables :

  • Un serveur Ubuntu installé et configuré
  • L’adresse IP ou le socket de domaine Unix du serveur
  • Le domaine de votre serveur
  • Les pri­vi­lèges sudo pour le serveur
Managed Nextcloud de IONOS Cloud
Tra­vail­lez en équipe dans votre propre Cloud
  • Sécurité des données
  • Outils de col­la­bo­ra­tion intégrés
  • Hé­ber­ge­ment dans des data centers européens

Comment installer NGINX comme reverse proxy ?

Dans un premier temps, mettez à jour votre ré­fé­ren­tiel via Terminal afin d’avoir accès aux tout derniers paquets. Installez ensuite NGINX avec la commande apt install. Voici le code approprié :

$ sudo apt update
$ sudo apt install nginx
bash

Confirmez avec [Y] et appuyez sur [Enter] pour valider les pa­ra­mètres.

Dans l’étape suivante, con­fi­gu­rez votre pare-feu de façon que NGINX puisse accéder à votre serveur. Pour ce faire, ajoutez une exception avec la commande suivante :

$ sudo ufw allow 'Nginx HTTP'
bash

Pour finir, vérifiez que l’ins­tal­la­tion de NGINX a réussi. Saisissez la commande suivante :

$ systemctl status nginx
bash

Si NGINX a été installé cor­rec­te­ment, le résultat suivant sera généré :

nginx.service - A high performance web server and a reverse proxy server
      Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
      Active: active (running) since Mon 2024-06-24 06:52:46 UTC; 39min ago
         Docs: man:nginx(8)
    Main PID: 9919 (nginx)
        Tasks: 2 (limit: 2327)
      Memory: 2.9M
          CPU: 50ms
      CGroup: /system.slice/nginx.service
                 ├─9919 "nginx: master process /usr/sbin/nginx -g daemon on; master_process on;"
                 └─9920 "nginx: worker process"
bash

Comment adapter le serveur ?

Il s’agit main­te­nant de con­fi­gu­rer votre bloc serveur afin de préparer le NGINX reverse proxy de manière optimale pour votre système. Pour cela, créez et ouvrez un nouveau fichier de con­fi­gu­ra­tion avec l’éditeur de texte nano. Saisissez la commande suivante, en rem­pla­çant « votre_domaine » par le nom réel de votre domaine :

$ sudo nano /etc/nginx/sites-available/votre_domaine
bash

Une fois le fichier ouvert, insérez le contenu suivant. Remplacez « votre_domaine » et « adresse_serveur » par le domaine et l’IP ou le socket de domaine Unix de votre serveur :

server {
    listen 80;
    listen [::]:80;
    server_name votre_domaine www.votre_domaine;
        
    location / {
        proxy_pass http://server_adresse;
        include /etc/nginx/proxy_params;
    }
}
txt

En­re­gis­trez et fermez le fichier. Le contenu affiché est une con­fi­gu­ra­tion typique pour un reverse proxy avec NGINX. Le port 80 est utilisé pour réagir aux demandes de votre domaine et de votre serveur. Le composant proxy_pass est essentiel pour que NGINX fonc­tionne comme reverse proxy. Le cas échéant, vous pouvez également con­fi­gu­rer des serveurs sup­plé­men­taires.

Créez ensuite un lien vers le ré­per­toire sites-enabled, auquel NGINX accède au début. Pour cela, utilisez la commande suivante en rem­pla­çant à nouveau « votre_domaine » :

$ sudo ln -s /etc/nginx/sites-available/votre_domaine/ etc/nginx/sites-enabled/
bash

Vérifiez que votre con­fi­gu­ra­tion ne comporte pas d’erreurs :

$ sudo nginx -t
bash

Si aucun message d’erreur ne s’affiche, vous pouvez re­dé­mar­rer le NGINX reverse proxy afin de confirmer tous les pa­ra­mètres. Pour ce faire, saisissez la commande suivante :

$ sudo systemctl restart nginx
bash

La con­fi­gu­ra­tion de NGINX en tant que reverse proxy est désormais terminée. Dans la section suivante, nous vous verrons comment tester le proxy. Toutefois, ce test n’est pas obli­ga­toire.

Comment vérifier si le NGINX reverse proxy fonc­tionne cor­rec­te­ment ?

Pour tester votre NGINX reverse proxy, vous pouvez, en principe, utiliser votre serveur. Il suffit de l’appeler via le shell. Vous pouvez aussi utiliser le serveur Internet HTTP Gunicorn qui se combine très bien avec le NGINX reverse proxy. Mettez d’abord à jour les paquets et installez le serveur :

$ sudo apt update
$ sudo apt install gunicorn
bash

Ensuite, créez une fonction simple qui sera envoyée à votre na­vi­ga­teur sous forme de réponse HTTP. Utilisez à nouveau nano à cet effet :

$ nano test.py
bash

Ouvrez le fichier et saisissez le code suivant :

def app(environ, start_response):
	start_response("200 OK", [])
	return iter([b"Ceci est un test"])
txt

Ensuite, en­re­gis­trez et fermez le fichier, lancez Gunicorn et appelez le module de test :

$ gunicorn --worker=2 test:app
bash

Le résultat devrait res­sem­bler à peu de choses à ceci :

[2024-06-24 07:09:29 +0000] [10568] [INFO] Starting gunicorn 20.1.0
[2024-06-24 09:14:37 +0000] [10568] [INFO] Listening at: http://127.0.0.1 (10568)
[2024-06-24 09:14:37 +0000] [10568] [INFO] Using worker: sync
[2024-06-24 09:14:37 +0000] [10569] [INFO] Booting worker with pid: 10569
[2024-06-24 09:14:37 +0000] [10570] [INFO] Booting worker with pid: 10570
bash

Ceci est la con­fir­ma­tion que Gunicorn interagit avec l’adresse par défaut http://127.0.0.1:8000. Pour finir, ouvrez votre na­vi­ga­teur et accédez au domaine que vous avez configuré avec NGINX. À présent, le NGINX reverse proxy affiche le message suivant : « Ceci est un test ».

Aller au menu principal