머리말
응용 시나리오: 아마도 내부 웹사이트는 외부 사용자가 액세스해야 하며 동시에 방문자에게 웹사이트 계정 권한을 부여할 수 없으므로 nginx 수준에서 제한이 적용됩니다. 예를 들어 아웃소싱 프로젝트의 경우 내부 직원은 문서를 운영하기 위한 계정이 있는 반면, 아웃소싱 직원은 내부 계정이 없지만 문서를 볼 수 있어야 하므로 nginx 수준에서 사용자 확인을 설정하는 것이 가장 좋고 간단한 옵션입니다. 대부분의 경우 고용주는 아웃소싱 직원에 대한 기본 액세스 권한이 있는 계정을 개설하지 않습니다.
nginx 수준에서 사용자 인증을 위한 전제 조건: apache2-utils(debian, ubuntu) 또는 httpd-tools(rhel/centos/oracle linux)와 같은 해당 비밀번호 생성 프로그램이 필요합니다.
계정 비밀번호 파일 만들기
sudo htpasswd -c /etc/apache2/.htpasswd user1
명령을 사용하여 첫 번째 계정을 만든 다음 Enter 키를 눌러 비밀번호, 동일한 명령에는 두 번째 사용자 및 비밀번호를 생성하는 -c 매개 변수가 없으며, -c 매개 변수는 파일을 생성하는 것이며 두 번째 이후 명령에서는 파일을 다시 생성할 필요가 없습니다. sudo htpasswd -c /etc/apache2/.htpasswd user1
创建第一个账户,然后按下 enter 键输入密码,同样的命令,没有 -c 参数创建第二个用户及密码, -c 参数为创建文件,在第二次及以后的命令中不需要再次创建文件。
确认一下文件及账号信息生成成功,使用命令 cat /etc/apache2/.htpasswd 查看文件内容,应该为账号及加密后的密码,如:user1:$apr1$/woc1jnp$kah0ssvn5qesmjttn0e9q0
user1과 같은 계정 번호와 암호화된 비밀번호여야 합니다. $apr1$/woc1jnp$kah0ssvn5qesmjttn0e9q0
등등. 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 허용하려면 허용 및 거부 지시어를 사용하세요. 또는 지정된 IP에 대한 액세스를 제한합니다(예:
location /api { #... deny 192.168.1.2; allow 192.168.1.1/24; allow 127.0.0.1; deny all; }
IP 및 http 인증을 통해 제한 사항을 만족 지시문과 결합합니다. 지시문이 all로 설정된 경우 클라이언트가 이 두 조건을 충족하면 액세스가 허용됩니다. 지시문이 any로 설정된 경우 클라이언트가 하나 이상의 조건을 충족하면 액세스가 허용됩니다. 예를 들어 구성:
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; } } }
위 내용은 Nginx 사용자 인증 페이지를 구성하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!