Comment configurer le serveur proxy Nginx pour implémenter le contrôle d'accès aux services Web distribués ?

王林
Libérer: 2023-09-05 16:14:01
original
1322 Les gens l'ont consulté

Comment configurer le serveur proxy Nginx pour implémenter le contrôle daccès aux services Web distribués ?

Comment configurer le serveur proxy Nginx pour obtenir un contrôle d'accès aux services Web distribués ?

Introduction :
Dans l'architecture moderne de services Web distribués, afin d'assurer la sécurité et la fiabilité du système, le contrôle d'accès est un élément très important. En tant que serveur proxy hautes performances et évolutif, Nginx peut être utilisé pour mettre en œuvre le contrôle d'accès aux services Web distribués et fournir des options de configuration flexibles. Cet article expliquera comment configurer le serveur proxy Nginx pour implémenter le contrôle d'accès aux services Web distribués et fournira des exemples de code pertinents.

1. Installer le serveur Nginx

Tout d'abord, nous devons installer le serveur Nginx. Sur les systèmes Linux, il peut être installé via des outils de gestion de packages. En prenant le système Ubuntu comme exemple, utilisez la commande suivante pour installer :

sudo apt-get update
sudo apt-get install nginx
Copier après la connexion

2. Configurez le serveur proxy Nginx

  1. Modifiez le fichier de configuration Nginx
    Ouvrez le fichier de configuration Nginx via la commande suivante :
sudo nano /etc/nginx/nginx.conf
Copier après la connexion
  1. Configure le service proxy
    Dans le fichier de configuration Nginx, recherchez la section http et ajoutez-y le code suivant : http部分,并在其中添加以下代码:
http {
    ...
    upstream backend {
        server web1.example.com:80;
        server web2.example.com:80;
        server web3.example.com:80;
    }
    ...
}
Copier après la connexion

上述代码中,upstream backend定义了后端服务器的地址和端口号,并可以根据实际情况添加或删除后端服务器。

  1. 配置访问控制
    可以根据具体需求配置不同的访问控制策略。以下是一些常见的配置示例:

(1)IP白名单:

location / {
    allow 192.168.0.0/24;
    deny all;
}
Copier après la connexion

上述配置表示只允许IP地址为192.168.0.0/24的客户端访问。

(2)基于HTTP Basic认证:

location / {
    auth_basic "Restricted Content";
    auth_basic_user_file /etc/nginx/.htpasswd;
}
Copier après la connexion

上述配置表示需要使用HTTP Basic认证,并通过.htpasswd文件验证用户。

(3)基于URL路径:

location /admin {
    deny all;
}

location /api {
    allow all;
}
Copier après la connexion

上述配置表示对/admin路径的请求进行拒绝,对/api路径的请求进行允许。

  1. 重启Nginx服务器
    在完成配置后,通过以下命令重启Nginx服务器使配置生效:
sudo service nginx restart
Copier après la connexion
Copier après la connexion

三、实例演示

假设我们有三个后端服务器:web1.example.comweb2.example.comweb3.example.com,现在我们来演示如何配置访问控制。

  1. 配置文件示例:
http {
    ...
    upstream backend {
        server web1.example.com:80;
        server web2.example.com:80;
        server web3.example.com:80;
    }

    server {
        listen 80;
        
        location / {
            allow 192.168.0.0/24;
            deny all;
            proxy_pass http://backend;
        }

        location /admin {
            deny all;
            proxy_pass http://backend;
        }
        
        location /api {
            allow all;
            proxy_pass http://backend;
        }
    }
    ...
}
Copier après la connexion
  1. 重启Nginx服务器:
sudo service nginx restart
Copier après la connexion
Copier après la connexion

通过以上配置,我们实现了以下功能:

1)只允许IP地址为192.168.0.0/24的客户端访问根路径/
2)拒绝对/admin路径的请求进行访问。
3)允许对/api

rrreee

Dans le code ci-dessus, le backend amont définit l'adresse et numéro de port du serveur backend et peut ajouter ou supprimer des serveurs backend en fonction des conditions réelles.

    Configurer le contrôle d'accès

    Vous pouvez configurer différentes politiques de contrôle d'accès en fonction de besoins spécifiques. Voici quelques exemples de configuration courants :

    🎜🎜 (1) Liste blanche IP : 🎜rrreee🎜La configuration ci-dessus signifie que seuls les clients avec l'adresse IP 192.168.0.0/24 sont autorisés à y accéder. 🎜🎜(2) Basé sur l'authentification HTTP Basic : 🎜rrreee🎜La configuration ci-dessus indique que l'authentification HTTP Basic doit être utilisée et que l'utilisateur est authentifié via le fichier .htpasswd. 🎜🎜(3) Basé sur le chemin de l'URL : 🎜rrreee🎜La configuration ci-dessus indique que les demandes pour le chemin /admin seront rejetées et que les demandes pour le chemin /api seront autorisé. 🎜
      🎜Redémarrez le serveur Nginx🎜Après avoir terminé la configuration, redémarrez le serveur Nginx via la commande suivante pour que la configuration prenne effet :🎜🎜rrreee🎜Exemple de démonstration🎜🎜Supposons que nous ayons trois backends. serveurs : web1.example.com, web2.example.com et web3.example.com, nous allons maintenant montrer comment configurer le contrôle d'accès . 🎜🎜🎜Exemple de fichier de configuration : 🎜🎜rrreee🎜🎜Redémarrer le serveur Nginx : 🎜🎜rrreee🎜Grâce à la configuration ci-dessus, nous avons obtenu les fonctions suivantes : 🎜🎜1) Autoriser uniquement les adresses IP à 192.168.0.0/24 Le client accède au chemin racine /. 🎜2) Refuser l'accès aux requêtes pour le chemin /admin. 🎜3) Autoriser l'accès aux requêtes pour le chemin /api. 🎜🎜Conclusion : 🎜En configurant le serveur proxy Nginx, nous pouvons réaliser un contrôle d'accès aux services Web distribués. Grâce à des politiques de contrôle d’accès correctement configurées, nous pouvons améliorer la sécurité et la fiabilité du système. 🎜🎜Ce qui précède est une introduction sur la façon de configurer le serveur proxy Nginx pour implémenter le contrôle d'accès aux services Web distribués. J'espère que cela sera utile à tout le monde. 🎜

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!

Étiquettes associées:
source:php.cn
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
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!