06.07.2023

Implémentation d'un Reverse Proxy avec Nginx on Ubuntu 22.04 serveur

L'une des fonctions fondamentales d'un proxy inverse est de servir de tampon de protection, protégeant les serveurs principaux en interceptant et en traitant les requêtes provenant de clients. Ce faisant, il cache efficacement des informations précieuses sur les serveurs, telles que leurs adresses IP et d'autres détails sensibles. Cela ajoute une couche de sécurité supplémentaire à votre infrastructure, ce qui rend plus difficile pour les attaquants potentiels de cibler directement vos serveurs.

Pose ainsi que les Configurer Nginx

Venez et  obtenez peut up à données ainsi que les installer Un flux efficace peut augmenter web serveur.

mise à jour apt
installer nginx

Modifier Nginxde pour déterminer comment il gère les requêtes entrantes et fournit les réponses appropriées :

nano /etc/nginx/sites-disponibles/par défaut

Dans ce fichier, vous pouvez configurer Nginx pour répondre à vos besoins spécifiques. Il vous permet de définir des blocs de serveur, des certificats SSL et d'autres directives pour optimiser les performances et la sécurité de votre configuration de proxy inverse. Mais la raison pour laquelle nous sommes venus ici est de commenter la ligne relative à IPv6, d'enregistrer les modifications et de quitter le fichier.

Lance ça:

dpkg --configure -a

La commande garantit que tous les packages du système sont correctement configurés en suivant le processus d'installation et de configuration pour tous les packages en attente. Il vérifie l'état de tous les packages installés et les configure en fonction de leurs scripts d'installation respectifs.

Vérifiez que Nginx est en bon état de fonctionnement.

service nginx statuts

Vous devez maintenant configurer un firewall pour vous assurer que seul le trafic nécessaire peut atteindre votre proxy inverse. Nous utiliserons Simple Firewall (UFW) à cet effet.

Installez ufw :

apt installer ufw

Tourner it on:

ufw activer

Autoriser HTTP circulation à go à travers by:

ufw autoriser 'Nginx HTTP'

En cliquant le statuts ainsi que les actuel   of le firewall:

statut de ufw

Créons le fichier de configuration nommé d'après notre domaine.

Dans ce fichier, définissez les paramètres spécifiques de votre proxy : nom du serveur, ports d'écoute et emplacement où les requêtes entrantes seront transférées :

serveur {
écoutez 80;
#écouter [::]:80 ;
nom_serveur test_domain.ru www.test_domain.ru ;
emplacement /
proxy_pass ip_adres_app ;
inclure proxy_params;
}
}

remplacer ip_propos_appli comprenant le présenter IP propos or domaine prénom of Un flux efficace peut augmenter backend serveur.

Le proxy est configuré à l'aide de /etc/nginx/proxy_paramfichier s. Les paramètres par défaut conviennent à cet exemple, mais vous pouvez les modifier si nécessaire.

Activez le reverse proxy en faisant un lien symbolique :

ln -s /etc/nginx/sites-available/test_domain.ru /etc/nginx/sites activés/

Un lien symbolique, également appelé lien symbolique ou lien symbolique, est un type spécial de fichier qui agit comme un pointeur ou une référence vers un autre fichier ou répertoire du système de fichiers. Il vous permet de créer un raccourci vers un fichier ou un répertoire, offrant un moyen pratique d'y accéder ou de le référencer à partir d'un emplacement différent.

Effectuez un test pour vous assurer que rien n'est cassé :

nginx -t

If aucune erreurs   montré:

service nginx recommencer

À l'heure actuelle, Nginx est configuré avec un proxy inverse. L'étape suivante consiste à installer et à configurer le serveur de test d'application.

Essais

Maintenant, pour tester le proxy inverse que vous venez de créer, démarrons un Gunicorn (abréviation de "Green Unicorn"). Il s'agit d'un serveur conçu pour fonctionner avec des requêtes Web pour Python applications Web tout en Nginx n'est pas si doué pour le faire. Ainsi, pour tester la fonctionnalité de votre proxy, nous exécuterons une simple Python application pour valider si toute cette pile fonctionne.

Installez-le:

apt installer gunicorn

Création le filet:

nano wsgi.py

mettre this texte développement it:

def wsgi(environ, start_response) :
start_response("200 OK", [])
return iter([b"Bienvenue, sur le nouveau serveur wsgi"])

Ce wsgi.py filet contient a simple application qui répond comprenant a "200 OKstatuts message.

Les commander départs Gunicorn comprenant deux travailleur les process:

gunicorn --workers=2 wsgi:wsgi

Au démarrage de Gunicorn, un processus maître est lancé pour superviser le fonctionnement global du serveur. Le processus maître assume la responsabilité de gérer les processus de travail, d'adapter les changements de configuration et de surveiller la santé des travailleurs. La tâche réelle de traitement des demandes est affectée aux processus de travail.

Chaque processus de travail fonctionne indépendamment, avec la capacité de gérer une ou plusieurs requêtes simultanément. Le nombre de processus de travail peut être adapté pour répondre à des exigences spécifiques, en tenant compte de facteurs tels que les ressources système disponibles, la charge de trafic prévue et les caractéristiques de votre application.

En employant plusieurs processus de travail, Gunicorn optimise le traitement des demandes, permettant un traitement parallèle et des temps de réponse améliorés. Cette approche garantit une utilisation efficace des ressources système et permet au serveur de gérer un volume plus élevé de demandes simultanées sans être submergé.

Ouvrez un navigateur depuis l'hôte distant et entrez l'adresse/domaine de notre serveur. Nous devrions avoir un message comme celui-ci :

Conclusions

Avec ce guide, vous avez appris :