>운영 및 유지보수 >엔진스 >Nginx 사용자 인증 페이지를 구성하는 방법

Nginx 사용자 인증 페이지를 구성하는 방법

PHPz
PHPz앞으로
2023-05-12 08:10:112429검색

머리말

응용 시나리오: 아마도 내부 웹사이트는 외부 사용자가 액세스해야 하며 동시에 방문자에게 웹사이트 계정 권한을 부여할 수 없으므로 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 

파일 및 계정 정보가 성공적으로 생성되었는지 확인하세요. cat /etc/apache2/.htpasswd 명령을 사용하여 파일 내용을 확인하세요. user1과 같은 계정 번호와 암호화된 비밀번호여야 합니다. $apr1$/woc1jnp$kah0ssvn5qesmjttn0e9q0등등.


http 기본 사용자 인증을 위한 nginx 구성

auth_basic 명령을 사용하여 보호 영역의 이름을 지정합니다. 이 이름은 계정 비밀번호 팝업 창에 표시됩니다. .htpasswd 계정 비밀번호 경로. 예를 들어 구성은 다음과 같습니다.

location /api {
 auth_basic   "administrator's area";
 auth_basic_user_file /etc/apache2/.htpasswd; 
}
또한 블록이 전체 인증 시스템을 상속하지 않으려는 경우 블록에서 auth_basic off를 설정할 수 있습니다. 이는 사용자 인증이 꺼진다는 의미입니다. 구성 예:
server {
 ...
 auth_basic   "administrator's area";
 auth_basic_user_file conf/htpasswd;

 location /public/ {
  auth_basic off;
 }
}

인증과 IP 주소별 액세스 제한 결합

  • http 기본 인증은 IP 주소별 액세스 제한과 효과적으로 결합될 수 있습니다. 최소한 두 가지 시나리오를 구현할 수 있습니다.

  • 사용자는 인증을 받아야 하고 IP 액세스 권한이 있어야 합니다

사용자는 인증을 받아야 하거나 IP 액세스 권한이 있어야 합니다


1 허용하려면 허용 및 거부 지시어를 사용하세요. 또는 지정된 IP에 대한 액세스를 제한합니다(예:

location /api {
 #... deny 192.168.1.2;
 allow 192.168.1.1/24;
 allow 127.0.0.1;
 deny all;
}

2). 192.168.1.2 주소가 아닌 네트워크의 경우 192.168.1.1/24에 대한 액세스만 허용됩니다. 참고: 허용 및 거부 지시문은 정의된 순서대로 적용됩니다.

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 사용자 인증 페이지를 구성하는 방법최종 효과는 다음과 같습니다. 그림:

🎜🎜🎜

위 내용은 Nginx 사용자 인증 페이지를 구성하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 yisu.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제