Maison  >  Article  >  Opération et maintenance  >  Comment implémenter la configuration du proxy inverse Nginx

Comment implémenter la configuration du proxy inverse Nginx

王林
王林original
2023-11-08 15:07:531041parcourir

Comment implémenter la configuration du proxy inverse Nginx

Comment implémenter la configuration du proxy inverse Nginx nécessite des exemples de code spécifiques

Nginx est un serveur Web open source hautes performances et un serveur proxy inverse. Dans les applications pratiques, nous utilisons souvent Nginx comme proxy inverse pour implémenter l'équilibrage de charge, la mise en cache, le proxy de terminal SSL et d'autres fonctions. Cet article explique comment configurer le proxy inverse de Nginx et donne des exemples de code spécifiques.

  1. Installer Nginx

Tout d'abord, nous devons installer Nginx. Il peut être installé via un gestionnaire de paquets (tel que apt-get, yum), ou vous pouvez télécharger le code source depuis le site officiel, le compiler et l'installer. En prenant Ubuntu comme exemple, installez Nginx via apt-get :

sudo apt-get update
sudo apt-get install nginx
  1. Configurer le proxy inverse

Dans le fichier de configuration de Nginx, nous devons configurer le proxy inverse. Le fichier de configuration Nginx se trouve généralement dans /etc/nginx/nginx.conf ou /etc/nginx/conf.d/default.conf. Avant de modifier le fichier de configuration, il est recommandé de sauvegarder la configuration originale.

Ouvrez le fichier de configuration, recherchez le nœud http et ajoutez la configuration suivante sous le nœud :

server {
    listen 80;
    server_name example.com;

    location / {
        proxy_pass http://backend_server;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }
}

Dans la configuration ci-dessus, Listen spécifie le port sur lequel Nginx écoute (par exemple, 80) et server_name spécifie le nom de domaine de le proxy inverse (par exemple, exemple. com). Dans le nœud d'emplacement, nous définissons l'adresse du proxy inverse (tel que http://backend_server) et utilisons la directive proxy_set_header pour transmettre certaines informations d'en-tête de requête HTTP.

  1. Configurer le serveur backend

Dans le fichier de configuration, nous utilisons http://backend_server comme adresse de proxy inverse. Ici, vous devez remplacer backend_server par l'adresse réelle du serveur backend.

Il existe de nombreuses façons de spécifier l'adresse du serveur backend. Voici deux méthodes courantes :

A. Utiliser l'adresse IP et le port

proxy_pass http://192.168.1.100:8000;

B. Utiliser le nom de domaine et le port

proxy_pass http://backend.example.com:8000;
  1. Redémarrer Nginx

Après avoir terminé la configuration, enregistrez le fichier de configuration et redémarrez Nginx pour effectuer le la configuration prend effet :

sudo service nginx restart
  1. Verify Reverse Proxy

Maintenant, nous pouvons vérifier que le proxy inverse fonctionne en accédant au port sur lequel Nginx écoute (par exemple 80). Accédez à http://example.com via un navigateur ou une commande curl, et vous devriez pouvoir obtenir le contenu renvoyé par le serveur backend.

  1. Configuration avancée

En plus de la configuration de base du proxy inverse, Nginx fournit également de nombreuses options de configuration avancées pour optimiser davantage les performances et les fonctionnalités du proxy inverse. Voici quelques exemples de configuration avancée couramment utilisés :

A. Équilibrage de charge

upstream backend_servers {
    server backend1.example.com;
    server backend2.example.com;
    server backend3.example.com;
}

server {
    listen 80;
    server_name example.com;

    location / {
        proxy_pass http://backend_servers;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }
}

B Mise en cache

http {
    ...

    proxy_cache_path /path/to/cache levels=1:2 keys_zone=my_cache:10m max_size=10g inactive=60m;

    server {
        listen 80;
        server_name example.com;

        location / {
            proxy_pass http://backend_server;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;

            proxy_cache my_cache;
            proxy_cache_valid 200 302 60m;
            proxy_cache_valid 404 1m;
        }
    }

    ...
}

C. Proxy de terminal SSL

server {
    listen 443 ssl;
    server_name example.com;

    ssl_certificate /path/to/cert.pem;
    ssl_certificate_key /path/to/key.pem;

    location / {
        proxy_pass http://backend_server;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }
}

Les exemples ci-dessus ne sont que des utilisations de base et des scénarios courants de configuration du proxy inverse Nginx. ne sont pas exhaustifs. Pour les scénarios d'application complexes, nous pouvons avoir une compréhension approfondie des éléments et modules de configuration Nginx selon les besoins, et utiliser de manière flexible ses fonctions puissantes pour mettre en œuvre les stratégies de proxy et d'optimisation requises.

Résumé

Cet article présente comment implémenter la configuration du proxy inverse Nginx et donne des exemples de code spécifiques. Grâce au proxy inverse de Nginx, nous pouvons implémenter l'équilibrage de charge, la mise en cache, le proxy de terminal SSL et d'autres fonctions pour améliorer les performances et la fiabilité des applications Web. J'espère que cet article sera utile aux lecteurs qui découvrent 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:
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