>  기사  >  운영 및 유지보수  >  Nginx에서 htpasswd를 사용하여 웹사이트를 비밀번호로 보호하는 방법

Nginx에서 htpasswd를 사용하여 웹사이트를 비밀번호로 보호하는 방법

王林
王林앞으로
2023-05-17 15:49:06875검색

최종 효과는 비슷합니다(다른 브라우저의 인터페이스는 다름):

Nginx에서 htpasswd를 사용하여 웹사이트를 비밀번호로 보호하는 방법

인증에 실패하면 http 오류가 보고됩니다: 401 인증이 필요합니다.
해당 기능을 구현하려면 서버 구성을 변경하고 로그인을 위한 사용자 이름과 비밀번호를 설정해야 합니다.
먼저 웹사이트의 nginx 서버 구성을 변경해야 합니다. Ubuntu 서버의 경우 이 구성 파일은 일반적으로 /etc/nginx/sites-enabled/에 있습니다. 예를 들어 저는 기본 구성 파일인 /etc/nginx/sites를 사용합니다. -활성화/기본값은 여기에서 확인하세요.

코드 복사 코드는 다음과 같습니다.

server {
server_name www.fancycedar.info
root /www/fancycedar

# ...
location / {
# 다음 두 줄을 추가하세요
auth_basic "restricted" ;
auth_basic_user_file htpasswd;
# ...
}

# ...
}

다음으로 주의해야 할 몇 가지 세부 사항이 있습니다.
htpasswd
의 경로는 nginx.conf 디렉토리와 동일한 수준에 있으면 충분합니다. Ubuntu 서버의 경우 일반적으로 /etc/nginx/에 있습니다.
htpasswd
의 내용은 각 줄이 사용자를 나타내며 형식은 사용자 이름:비밀번호입니다. 그러나 여기의 비밀번호는 일반 텍스트가 아니라 crypt(3)에 의해 암호화된 문자열이라는 점에 유의하세요.
php 코드를 사용하여 htpasswd에서 비밀번호를 생성할 수 있습니다.

코드 복사 코드는 다음과 같습니다.

// 비밀번호 일반 텍스트
$password = 'some 비밀번호'
// 비밀번호를 암호화합니다.
$password = crypt( $password, base64_encode($password));
// 암호화된 비밀번호를 가져옵니다
echo $password;

그런 다음 htpasswd 파일에 문자열을 씁니다.

코드 복사 코드는 다음과 같습니다. :

username1:xucqmk13tfooe
username2 ; 준비되었나요?
위의 준비가 완료되면 nginx 서버를 다시 로드하거나 다시 시작할 수 있습니다.


코드 복사 코드는 다음과 같습니다.

sudo /etc/init.d/ nginx reload

# 또는

sudo /etc/init.d/nginx restart


위 내용은 Nginx에서 htpasswd를 사용하여 웹사이트를 비밀번호로 보호하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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