Comment faire en sorte que le serveur Nginx écoute sur plusieurs ports ⋆ ALexHost SRL

Testez vos compétences sur tous nos services d'hébergement et bénéficiez de 15% de réduction!.

Utilisez le code à la caisse :

Skills
10.12.2024

Comment faire en sorte que le serveur Nginx écoute sur plusieurs ports

Nginx est un serveur web polyvalent et un proxy inverse qui peut être configuré pour écouter sur plusieurs ports, ce qui lui permet de servir différents sites web, applications ou services à partir du même serveur. Configurer Nginx pour écouter sur plusieurs ports peut être utile pour servir différents contenus sur différents ports, ou pour supporter des services comme HTTP (port 80) et HTTPS (port 443). Ce guide vous montrera comment configurer Nginx pour écouter sur plusieurs ports.

Pré-requis

  • Un serveur avec Nginx installé et en cours d’exécution.
  • Accès root ou sudo pour modifier les fichiers de configuration de Nginx.
  • Une compréhension de base des fichiers de configuration de Nginx (nginx.conf et les fichiers de configuration spécifiques au site).

Aperçu de la configuration de base de Nginx

Les fichiers de configuration de Nginx sont généralement situés dans /etc/nginx/nginx.conf ou dans /etc/nginx/sites-available/ pour les configurations de sites spécifiques, en fonction de la distribution Linux. La principale directive d’écoute sur un port est listen, qui spécifie l’adresse IP et le port que Nginx doit écouter.

Étape 1 : Ouvrir le fichier de configuration de Nginx

Pour configurer Nginx afin qu’il écoute sur plusieurs ports, vous devez éditer le fichier de configuration de Nginx. Ouvrez le fichier en utilisant votre éditeur de texte préféré :

sudo nano /etc/nginx/nginx.conf

Ou, si vous modifiez la configuration d’un site spécifique :

sudo nano /etc/nginx/sites-available/example.conf

Étape 2 : Ajouter des directives d’écoute multiples

Pour que Nginx écoute sur plusieurs ports, vous pouvez ajouter plusieurs directives listen dans un bloc serveur. Voici un exemple de bloc serveur écoutant sur les ports 80 et 8080 :

server {
écoute 80 ;
listen 8080 ;
nom_du_serveur exemple.com ;
root /var/www/html ;
index index.html ;
location / {
try_files $uri $uri/ =404 ;
}
}

Dans cette configuration :

  • listen 80; demande à Nginx d’écouter les requêtes HTTP sur le port 80.
  • listen 8080; demande à Nginx d’écouter les requêtes HTTP sur le port 8080.

Cela signifie que les requêtes adressées à http://example.com:80 et http://example.com:8080 seront toutes deux traitées par ce bloc serveur.

Étape 3 : Configurer HTTPS avec plusieurs ports

Si vous souhaitez activer HTTPS sur un port différent (par exemple, 8443), vous pouvez le configurer comme suit :

server {
listen 443 ssl ;
listen 8443 ssl ;
nom_du_serveur exemple.com ;
ssl_certificate /etc/nginx/ssl/example.com.crt ;
ssl_certificate_key /etc/nginx/ssl/example.com.key;root /var/www/html ;
index index.html ;
location / {
try_files $uri $uri/ =404 ;
}
}

Dans cette configuration :

  • listen 443 ssl ; permet à Nginx d’écouter les requêtes HTTPS sur le port par défaut 443.
  • listen 8443 ssl ; permet à Nginx d’écouter les requêtes HTTPS sur le port 8443.
  • Les chemins d’accès au certificat et à la clé SSL (ssl_certificate et ssl_certificate_key) sont utilisés pour activer HTTPS.

Étape 4 : Vérification de la configuration

Après avoir effectué les modifications, il est crucial de vérifier la configuration de Nginx pour les erreurs de syntaxe avant d’appliquer les changements. Exécutez :

sudo nginx -t

Si la sortie indique que la syntaxe est correcte, la configuration est correcte.

Étape 5 : Redémarrer Nginx

Pour appliquer les changements, redémarrez Nginx :

sudo systemctl restart nginx

Ou, si votre système utilise le service :

sudo service nginx restart

Étape 6 : Test de la configuration

Pour vérifier que Nginx écoute correctement sur plusieurs ports :

  1. Vérifier les ports d’écoute : Utilisez netstat ou ss pour vérifier que Nginx écoute sur les ports spécifiés :
    sudo netstat -tuln | grep nginx

    ou :
    sudo ss -tuln | grep nginx

    Cela affichera une liste des ports sur lesquels Nginx est à l’écoute. Vous devriez voir des entrées pour les ports 80, 8080, 443, et 8443.
  2. Accédez au serveur : Ouvrez votre navigateur web et essayez d’accéder au serveur en utilisant les différents ports :
    • http://example.com
    • http://example.com:8080
    • https://example.com
    • https://example.com:8443

    Vous devriez voir le même contenu servi si la configuration a été faite correctement.

Avancé : Définir des contenus différents pour des ports différents

Vous pouvez configurer un contenu différent en fonction du port. Par exemple, servir des répertoires racine différents pour chaque port :

server {
listen 80 ;
nom_du_serveur exemple.com ;
root /var/www/html80 ;
index index.html;location / {
try_files $uri $uri/ =404 ;
}
}

server {
listen 8080 ;
nom_du_serveur exemple.com ;
root /var/www/html8080 ;
index index.html;location / {
try_files $uri $uri/ =404 ;
}
}

Dans cet exemple :

  • Les requêtes adressées à http://example.com (port 80) serviront le contenu de /var/www/html80.
  • Les requêtes adressées à http://example.com:8080 serviront le contenu de /var/www/html8080.

Conclusion

Configurer Nginx pour qu’il écoute sur plusieurs ports vous permet de servir différents services, de prendre en charge des configurations personnalisées ou d’apporter de la flexibilité à votre architecture réseau. Que vous ayez besoin que Nginx gère plusieurs ports HTTP et HTTPS ou qu’il dirige différents ports vers différents contenus, la directive listen de Nginx est facile à mettre en place. Veillez simplement à vérifier vos configurations, à redémarrer Nginx et à tester chaque port pour vous assurer que tout fonctionne comme prévu.

Testez vos compétences sur tous nos services d'hébergement et bénéficiez de 15% de réduction!.

Utilisez le code à la caisse :

Skills