Avant-propos
Scénario d'application : le site Web interne doit probablement être accessible par des utilisateurs externes, et en même temps, les visiteurs ne peuvent pas recevoir d'autorisations de compte de site Web, des restrictions sont donc imposées au niveau nginx. Par exemple, dans les projets d'externalisation, les employés internes disposent de comptes pour gérer les documents, tandis que les employés externalisés n'ont pas de comptes internes, mais ils doivent pouvoir voir les documents. Par conséquent, définir la vérification des utilisateurs au niveau nginx est l'option la meilleure et la plus simple. Dans la plupart des cas, les employeurs n'ouvriront pas de compte avec des droits d'accès de base pour les employés externalisés.
Prérequis pour l'authentification des utilisateurs au niveau nginx : un programme de création de mot de passe correspondant est requis, tel que apache2-utils (debian, ubuntu) ou httpd-tools (rhel/centos/oracle linux). Différents systèmes d'exploitation sont différents.
Créez un fichier de mot de passe de compte
Utilisez la commande sudo htpasswd -c /etc/apache2/.htpasswd user1
pour créer le premier compte, puis appuyez sur la touche Entrée pour saisir le mot de passe, la même commande, il n'y a pas de paramètre -c pour créer un deuxième utilisateur et un deuxième mot de passe, le paramètre -c sert à créer un fichier et il n'est pas nécessaire de créer à nouveau le fichier dans la deuxième commande et les suivantes. sudo htpasswd -c /etc/apache2/.htpasswd user1
创建第一个账户,然后按下 enter 键输入密码,同样的命令,没有 -c 参数创建第二个用户及密码, -c 参数为创建文件,在第二次及以后的命令中不需要再次创建文件。
确认一下文件及账号信息生成成功,使用命令 cat /etc/apache2/.htpasswd 查看文件内容,应该为账号及加密后的密码,如:user1:$apr1$/woc1jnp$kah0ssvn5qesmjttn0e9q0
user1 : $apr1$/woc1jnp$kah0ssvn5qesmjttn0e9q0
etc. location /api { auth_basic "administrator's area"; auth_basic_user_file /etc/apache2/.htpasswd; }
server { ... auth_basic "administrator's area"; auth_basic_user_file conf/htpasswd; location /public/ { auth_basic off; } }
1 Utilisez les directives d'autorisation et de refus pour autoriser. ou Restreindre l'accès à l'adresse IP spécifiée, par exemple, configurez :
location /api { #... deny 192.168.1.2; allow 192.168.1.1/24; allow 127.0.0.1; deny all; }
Combinez les restrictions avec la directive satisfont via l'authentification IP et http. Si la directive est définie sur all, l'accès est accordé lorsque le client remplit ces deux conditions. Si la directive est définie sur any, l'accès est accordé si le client remplit au moins une condition. Par exemple, la configuration :
location /api { #... satisfy all; deny 192.168.1.2; allow 192.168.1.1/24; allow 127.0.0.1; deny all; auth_basic "administrator's area"; auth_basic_user_file conf/htpasswd; }
http { server { listen 192.168.1.23:8080; root /usr/share/nginx/html; location /api { api; satisfy all; deny 192.168.1.2; allow 192.168.1.1/24; allow 127.0.0.1; deny all; auth_basic "administrator's area"; auth_basic_user_file /etc/apache2/.htpasswd; } } }
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!