Maison > Article > développement back-end > Comment configurer le serveur proxy Nginx pour implémenter le contrôle d'accè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
2. Configurez le serveur proxy Nginx
sudo nano /etc/nginx/nginx.conf
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; } ... }
上述代码中,upstream backend
定义了后端服务器的地址和端口号,并可以根据实际情况添加或删除后端服务器。
(1)IP白名单:
location / { allow 192.168.0.0/24; deny all; }
上述配置表示只允许IP地址为192.168.0.0/24
的客户端访问。
(2)基于HTTP Basic认证:
location / { auth_basic "Restricted Content"; auth_basic_user_file /etc/nginx/.htpasswd; }
上述配置表示需要使用HTTP Basic认证,并通过.htpasswd
文件验证用户。
(3)基于URL路径:
location /admin { deny all; } location /api { allow all; }
上述配置表示对/admin
路径的请求进行拒绝,对/api
路径的请求进行允许。
sudo service nginx restart
三、实例演示
假设我们有三个后端服务器:web1.example.com
、web2.example.com
和web3.example.com
,现在我们来演示如何配置访问控制。
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; } } ... }
sudo service nginx restart
通过以上配置,我们实现了以下功能:
1)只允许IP地址为192.168.0.0/24
的客户端访问根路径/
。
2)拒绝对/admin
路径的请求进行访问。
3)允许对/api
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.
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 IP192.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é. 🎜 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!