GNU/Linux >> Tutoriels Linux >  >> Ubuntu

Comment configurer et utiliser NGINX en tant que proxy inverse

Qu'est-ce qu'un proxy inverse ?

Un serveur proxy standard fonctionne au nom des clients, souvent en assurant la confidentialité ou en filtrant le contenu. Un proxy inverse fonctionne pour le compte d'un serveur, interceptant le trafic et l'acheminant vers un serveur séparé.

Il existe plusieurs raisons pour lesquelles vous pourriez vouloir installer un proxy inverse. L'une des principales raisons est la confidentialité.

Si vous avez plusieurs serveurs, un proxy inverse peut aider à équilibrer les charges entre les serveurs et à améliorer les performances. Comme un proxy inverse fournit un point de contact unique pour les clients, il peut centraliser la journalisation et les rapports sur plusieurs serveurs.

Nginx peut améliorer les performances en diffusant rapidement du contenu statique et en transmettant des demandes de contenu dynamique aux serveurs Apache.

Ce guide vous aidera à installer et à configurer un proxy inverse Nginx sur votre système.

Prérequis

  • Un serveur Linux avec Apache, PHP et un pare-feu
  • Accès à un utilisateur root avec sudo accéder
  • Ligne de commande Linux ou terminal (CtrlAltT pour Ubuntu, AltF2 pour CentOS)
  • Gestionnaire de packages (comme APT)

Configuration d'un proxy inverse Nginx

Étape 1 :Installez Nginx à partir des référentiels par défaut

Ouvrez une fenêtre de terminal et entrez ce qui suit :

sudo apt-get update

Laissez le gestionnaire de packages terminer l'actualisation des listes de logiciels, puis saisissez ce qui suit :

sudo apt-get install nginx

Laissez le processus se terminer.

Étape 2 (facultative) :Installer Nginx à partir du référentiel officiel

Ajouter une clé de sécurité

Dans une fenêtre de terminal, saisissez ce qui suit :

sudo wget https://nginx.org/keys/nginx_signing.key
sudo apt-key add nginx_signing.key

Cela télécharge la clé de signature pour Nginx, qui vérifie que vous téléchargez un logiciel authentique.

Ouvrir sources.list Fichier à éditer

Dans le terminal, saisissez ce qui suit :

sudo vi /etc/apt/sources.list

Ajouter des sources Nginx à la liste des référentiels

Entrez les lignes suivantes dans le /etc/apt/sources.list fichier que vous venez d'ouvrir :

deb https://nginx.org/packages/mainline/debian/ <CODENAME> nginx

deb-src https://nginx.org/packages/mainline/debian/ <CODENAME> nginx

Remplacer <CODENAME> avec le nom de code de votre distribution de Debian.

Enregistrer le fichier et quittez .

Installer la dernière version de Nginx

Pour installer la dernière version de Nginx, utilisez les commandes :

sudo apt-get remove nginx-common
sudo apt-get update
sudo apt-get install nginx

Étape 3 :Démarrez Nginx et configurez-le pour le lancer au redémarrage

Pour démarrer Nginx :

sudo systemctl start nginx

Pour activer Nginx :

sudo systemctl enable nginx

Pour vérifier que Nginx est en cours d'exécution :

sudo systemctl status nginx

La sortie doit vous montrer que le service est actif (en cours d'exécution) , comme dans l'image ci-dessous :

Étape 4 :Dissocier le fichier de configuration par défaut

Dans le terminal, saisissez ce qui suit :

sudo unlink /etc/nginx/sites-enabled/default

Étape 5 :Créer un nouveau fichier de configuration

Pour créer un nouveau fichier de configuration, saisissez :

cd /etc/nginx/sites-available/
sudo vi custom_server.conf

Remplacez custom_server avec un nom qui a du sens pour vous. Dans le nouveau fichier, saisissez :

server {

listen 80;

location / {

proxy_pass http://my_server;

}

}

Ceci est un exemple très basique de proxy inverse Nginx. Nginx est configuré pour écouter tout le trafic sur le port 80 pour tout le trafic.

Le proxy_pass la commande dirige tout le trafic sur le port 80 vers http://my_server . Changez simplement http://my_server à l'emplacement de votre choix, et Nginx interceptera les demandes des clients et les acheminera vers l'emplacement que vous spécifiez. Une fois que vous avez terminé, enregistrez le fichier et quittez.

Étape 6 :Liez et activez le fichier de configuration

Pour activer le nouveau fichier Nginx, saisissez :

ln -s /etc/nginx/sites-available/custom_server.conf 
/etc/nginx/sites-enabled/custom_server.conf

Comme d'habitude, remplacez custom_server avec le nom du fichier de configuration que vous avez créé à l'étape 5.

Étape 7 :Tester et redémarrer Nginx

Pour tester Nginx :

sudo service nginx configtest

Pour redémarrer Nginx :

sudo service nginx restart

Options de configuration Nginx facultatives

Tampons proxy

Par défaut, Nginx met en mémoire tampon le trafic des serveurs pour lesquels il assure le proxy. Les tampons améliorent les performances du serveur car une réponse du serveur n'est pas envoyée tant que le client n'a pas fini d'envoyer une réponse complète.

Pour désactiver le tampon, ouvrez le fichier de configuration de l'étape 5. Sous location/section , ajoutez ce qui suit :

proxy_buffering off;

En-têtes de demande

Les en-têtes fournissent au serveur des informations sur les requêtes effectuées ou sur le client.

Nginx redéfinit deux des champs d'en-tête :host est configuré pour $proxy_host , et connection est configuré pour close . Si vous utilisez ces en-têtes, assurez-vous de modifier le comportement dans le fichier de configuration.

Si des chaînes d'en-tête sont vides, Nginx élimine simplement ces champs.

Pour modifier la façon dont Nginx gère les bruyères, utilisez les commandes suivantes dans votre fichier de configuration :

location / {

proxy_set_header Host $host;

}

Cet exemple indique à Nginx de définir host au $host variables.

Pour empêcher qu'un champ d'en-tête ne soit transmis au serveur proxy, utilisez une chaîne vide comme suit :

location / {

proxy_set_header header-variable "";

}

Équilibrage de charge

Vous pouvez utiliser le fichier de configuration pour acheminer le trafic vers plusieurs serveurs. Pour utiliser cette configuration, votre fichier de configuration ressemblera à cet exemple :

http   {

server   {

proxy_pass http://my_server

}

}

En d'autres termes, la configuration HTTP sort de la configuration du serveur de l'étape 5.

Pour créer un nom pour un groupe de serveurs, utilisez le upstream commande :

http   {

upstream server_group   {

server my.server1.com weight=3;

server my.server2.com;

}

server  {

location / {

proxy_pass http://server_group;

}

}

}

Cette désignation prend deux serveurs – my.server1.com et my.server2.com – et les regroupe. Nginx proxy ce groupe de serveurs sous le nom http://server_group . Vous pouvez les renommer comme vous le souhaitez.

Cet exemple utilise le weight commande pour acheminer trois requêtes vers my.server1.com , puis 1 requête à my.server2.com . Il s'agit d'une option pour équilibrer manuellement la charge client entre les serveurs. Une autre méthode consiste simplement à omettre toute désignation, dans laquelle Nginx répartira les requêtes de manière égale entre les serveurs répertoriés.


Ubuntu
  1. Comment configurer le proxy inverse Nginx pour Kibana

  2. Comment configurer un proxy inverse Nginx

  3. Comment configurer Nginx en tant que proxy inverse sur Ubuntu 20.04

  4. Configurer Nginx en tant que proxy inverse sur Ubuntu 20.04 - Guide étape par étape ?

  5. Comment configurer curl pour utiliser en permanence un proxy ?

Comment configurer Nginx en tant que proxy inverse pour Apache sur Debian 11

Comment configurer le proxy inverse Nginx

Comment configurer un serveur Apt-cacher ?

Comment configurer le proxy inverse Nginx sur plesk ?

Comment utiliser le proxy inverse Nginx (serveur cPanel/WHM)

Comment configurer Tomcat avec Nginx en tant que proxy inverse sur Ubuntu 18.04