Maison > Opération et maintenance > Nginx > Comment configurer Nginx en tant que serveur proxy inversé?

Comment configurer Nginx en tant que serveur proxy inversé?

百草
Libérer: 2025-03-14 16:16:35
original
176 Les gens l'ont consulté

Comment configurer Nginx en tant que serveur proxy inversé?

Pour configurer Nginx en tant que serveur proxy inversé, vous devez configurer Nginx pour transférer les demandes du client à un serveur backend. Voici un guide étape par étape pour y parvenir:

  1. Installez Nginx : si Nginx n'est pas déjà installé sur votre système, installez-le à l'aide du gestionnaire de package approprié pour votre système d'exploitation. Par exemple, sur Ubuntu, vous pouvez utiliser la commande suivante:

     <code>sudo apt-get update sudo apt-get install nginx</code>
    Copier après la connexion
  2. Modifier le fichier de configuration NGINX : Le fichier de configuration par défaut pour Nginx sur la plupart des systèmes est situé sur /etc/nginx/nginx.conf ou dans le répertoire /etc/nginx/sites-available/ . Vous devrez créer ou modifier un fichier de configuration pour configurer le proxy inversé.
  3. Configurer le proxy inversé : dans le fichier de configuration, définissez un bloc de serveur qui agit comme le proxy inverse. Vous trouverez ci-dessous un exemple de configuration qui transfère les demandes d' example.com à un serveur backend exécutant sur localhost:8080 :

     <code>http { server { listen 80; server_name example.com; location / { proxy_pass http://localhost:8080; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } } }</code>
    Copier après la connexion
    • proxy_pass : spécifie l'adresse du serveur backend.
    • proxy_set_header : définit les en-têtes des demandes proxies pour s'assurer que le serveur backend reçoit des informations précises sur la demande d'origine.
  4. Tester et redémarrer Nginx : Après avoir apporté des modifications au fichier de configuration, il est crucial de tester la configuration des erreurs de syntaxe:

     <code>sudo nginx -t</code>
    Copier après la connexion

    Si le test réussit, redémarrez Nginx pour appliquer la nouvelle configuration:

     <code>sudo systemctl restart nginx</code>
    Copier après la connexion

En suivant ces étapes, Nginx agira comme un proxy inversé, en transférant les demandes au serveur backend spécifié.

Quels sont les avantages de l'utilisation de Nginx comme proxy inverse?

L'utilisation de Nginx comme proxy inversé offre plusieurs avantages:

  1. Équilibrage de la charge : Nginx peut distribuer un trafic entrant sur plusieurs serveurs backend, améliorant les performances et la fiabilité. Ceci est particulièrement utile pour les applications très trafiques.
  2. Sécurité : En agissant comme intermédiaire, Nginx peut aider à masquer l'existence et les caractéristiques des serveurs backend, améliorant la sécurité. Il peut également appliquer le cryptage SSL / TLS pour sécuriser les données transmises entre les clients et le serveur.
  3. Optimisation des performances : Nginx peut mettre en cache le contenu et compresser les réponses, réduire la charge du serveur et améliorer les temps de réponse. Il gère également le contenu statique plus efficacement que de nombreux serveurs d'applications.
  4. Évolutivité : Nginx aide à mettre à l'échelle les applications en vous permettant d'ajouter ou de supprimer les serveurs backend sans affecter le service frontal. Cela facilite la gestion de la croissance et de la maintenance.
  5. Haute disponibilité : en acheminant les demandes de serveurs backend sains et en gérant le basculement, Nginx peut assurer une plus grande disponibilité de votre service.
  6. Flexibilité : Nginx prend en charge de nombreux protocoles et peut être configuré pour divers cas d'utilisation, tels que WebSocket Proxying, Streaming, etc.

Comment puis-je optimiser les performances NGINX pour les configurations de proxy inverse?

Pour optimiser les performances de Nginx dans les configurations de proxy inverse, considérez les stratégies suivantes:

  1. Activer la mise en cache : utilisez les capacités de mise en cache de Nginx pour stocker le contenu fréquemment accessible. Cela peut réduire considérablement la charge sur les serveurs backend et améliorer les temps de réponse.

     <code>proxy_cache_path /path/to/cache levels=1:2 keys_zone=my_cache:10m max_size=10g inactive=60m; proxy_cache my_cache;</code>
    Copier après la connexion
  2. Assurez les processus et les connexions des travailleurs : ajustez le nombre de processus et de connexions de travailleurs pour correspondre aux capacités et à la charge de votre serveur.

     <code>worker_processes auto; events { worker_connections 1024; }</code>
    Copier après la connexion
  3. Utilisez la compression GZIP : activer GZIP pour compresser les réponses, réduire l'utilisation de la bande passante et améliorer les temps de chargement de la page.

     <code>gzip on; gzip_vary on; gzip_proxied any; gzip_comp_level 6; gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml rss text/javascript;</code>
    Copier après la connexion
  4. Optimiser la mise en mémoire tampon : configurer les tailles de tampon pour gérer plus efficacement les grandes demandes et les réponses.

     <code>proxy_buffers 16 16k; proxy_buffer_size 32k;</code>
    Copier après la connexion
  5. Implémentez la mise en commun des connexions : utilisez des connexions Keepalive pour réduire les frais généraux de l'établissement de nouvelles connexions.

     <code>keepalive_timeout 65; keepalive_requests 100;</code>
    Copier après la connexion
  6. Limitez l'utilisation des ressources : utilisez les fonctionnalités limitant les ressources de Nginx pour prévenir les abus et assurer une utilisation équitable des ressources du serveur.

     <code>limit_conn_zone $binary_remote_addr zone=addr:10m; limit_conn addr 10;</code>
    Copier après la connexion

En implémentant ces optimisations, vous pouvez améliorer les performances de votre configuration de proxy inverse Nginx.

Quelles mesures de sécurité dois-je implémenter lors de la configuration de Nginx en tant que proxy inverse?

La mise en œuvre de mesures de sécurité est cruciale lors de la configuration de Nginx comme proxy inverse. Considérez les pratiques suivantes:

  1. SSL / TLS Encryption : Activez HTTPS en configurant les certificats SSL / TLS pour sécuriser les données dans Transit. Utilisez des outils comme Let's Crypt pour des certificats gratuits.

     <code>server { listen 443 ssl; server_name example.com; ssl_certificate /path/to/cert.pem; ssl_certificate_key /path/to/key.pem; ssl_protocols TLSv1.2 TLSv1.3; ssl_prefer_server_ciphers on; ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256'; }</code>
    Copier après la connexion
  2. HTTP STRICT TRANSFRANT SECURITY (HSTS) : appliquer les connexions HTTPS pour éviter les attaques de rétrogradation du protocole.

     <code>add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always;</code>
    Copier après la connexion
  3. Limitation du taux : protéger contre les attaques de force brute et les DDOS en limitant le taux de demandes des adresses IP individuelles.

     <code>limit_req_zone $binary_remote_addr zone=one:10m rate=1r/s; limit_req zone=one burst=5;</code>
    Copier après la connexion
  4. En-têtes de sécurité : ajoutez des en-têtes pour améliorer la sécurité, tels que la politique de sécurité du contenu (CSP), les options X-Frame et la protection X-XSS.

     <code>add_header X-Frame-Options "SAMEORIGIN"; add_header X-Content-Type-Options "nosniff"; add_header X-XSS-Protection "1; mode=block"; add_header Content-Security-Policy "default-src 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval';";</code>
    Copier après la connexion
  5. Désactivez les jetons de serveur : masquez les informations de la version Nginx pour réduire la fuite d'informations.

     <code>server_tokens off;</code>
    Copier après la connexion
  6. Contrôle d'accès : restreignez l'accès à certaines parties de votre serveur en fonction des adresses IP ou d'autres critères.

     <code>location /admin { allow 192.168.1.0/24; deny all; }</code>
    Copier après la connexion
  7. Mises à jour régulières : Gardez Nginx et tous les logiciels connexes à jour pour protéger contre les vulnérabilités connues.

En suivant ces pratiques de sécurité, vous pouvez améliorer considérablement la sécurité de votre configuration proxy inverse NGINX.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal