Installer un NGINX reverse proxy sur Ubuntu 22.04 : comment s’y prendre ?
Utiliser NGINX est une option très répandue et vivement recommandée pour ses performances, sa flexibilité et sa capacité à sécuriser les connexions. Pour mettre en place cette solution, il suffit d’installer NGINX, de créer un fichier de configuration et d’adapter les paramètres du serveur. De plus, vous pouvez tester la configuration de votre reverse proxy en utilisant Gunicorn.
Installer et configurer un reverse proxy NGINX sous Ubuntu 22.04
Pour disposer d’un serveur Internet sécurisé, flexible et peu gourmand en ressources, 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çoivent de l’utilisation du médiateur de requêtes. Aussi, le NGINX reverse proxy est-il une solution très appréciable pour toutes les requêtes entrantes. Découvrons ensemble comment l’installer et le configurer sous Ubuntu 22.04.
Dans notre Digital Guide, vous trouverez également des instructions sur l’installation de NGINX sous Ubuntu 20.04 et des explications détaillées sur ce qu’est un serveur proxy.
Quelles sont les conditions préalables à une installation réussie ?
Pour pouvoir configurer un NGINX reverse proxy sous Ubuntu 22.04, les éléments suivants sont indispensables :
- Un serveur Ubuntu installé et configuré
- L’adresse IP ou le socket de domaine Unix du serveur
- Le domaine de votre serveur
- Les privilèges
sudo
pour le serveur
- Sécurité des données
- Outils de collaboration intégrés
- Hébergement dans des data centers européens
Comment installer NGINX comme reverse proxy ?
Dans un premier temps, mettez à jour votre référentiel 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
bashConfirmez avec [Y] et appuyez sur [Enter] pour valider les paramètres.
Dans l’étape suivante, configurez 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'
bashPour finir, vérifiez que l’installation de NGINX a réussi. Saisissez la commande suivante :
$ systemctl status nginx
bashSi NGINX a été installé correctement, 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"
bashComment adapter le serveur ?
Il s’agit maintenant de configurer 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 configuration avec l’éditeur de texte nano. Saisissez la commande suivante, en remplaçant « votre_domaine » par le nom réel de votre domaine :
$ sudo nano /etc/nginx/sites-available/votre_domaine
bashUne 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;
}
}
txtEnregistrez et fermez le fichier. Le contenu affiché est une configuration 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 fonctionne comme reverse proxy. Le cas échéant, vous pouvez également configurer des serveurs supplémentaires.
Créez ensuite un lien vers le répertoire sites-enabled
, auquel NGINX accède au début. Pour cela, utilisez la commande suivante en remplaçant à nouveau « votre_domaine » :
$ sudo ln -s /etc/nginx/sites-available/votre_domaine/ etc/nginx/sites-enabled/
bashVérifiez que votre configuration ne comporte pas d’erreurs :
$ sudo nginx -t
bashSi aucun message d’erreur ne s’affiche, vous pouvez redémarrer le NGINX reverse proxy afin de confirmer tous les paramètres. Pour ce faire, saisissez la commande suivante :
$ sudo systemctl restart nginx
bashLa configuration 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 obligatoire.
Comment vérifier si le NGINX reverse proxy fonctionne correctement ?
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
bashEnsuite, créez une fonction simple qui sera envoyée à votre navigateur sous forme de réponse HTTP. Utilisez à nouveau nano à cet effet :
$ nano test.py
bashOuvrez le fichier et saisissez le code suivant :
def app(environ, start_response):
start_response("200 OK", [])
return iter([b"Ceci est un test"])
txtEnsuite, enregistrez et fermez le fichier, lancez Gunicorn et appelez le module de test :
$ gunicorn --worker=2 test:app
bashLe résultat devrait ressembler à 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:8000 (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
bashCeci est la confirmation que Gunicorn interagit avec l’adresse par défaut http://127.0.0.1:8000
. Pour finir, ouvrez votre navigateur 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 ».