Nginx 에서 사용자 서버 접근 인증 을 설정 하 는 방법 예시
Nginx 는 특정한 도 메 인 이름 에 사용자 인증 을 추가 할 수 있 습 니 다. 구체 적 인 방법 은 다음 과 같 습 니 다.
1. 사용자 가 인증 한 사용자 이름과 비밀 번 호 를 생 성 합 니 다.
#wget -c soft.vpser.net/lnmp/ext/htpasswd.sh;bash htpasswd.sh
알림 에 따라 입력:
:
:
:
스 크 립 트 는 인증 파일 을 자동 으로 생 성 합 니 다. auth. conf 내용 은 다음 과 같 습 니 다.
/usr/local/nginx/conf/auth.conf
2. Nginx 에 auth 인증 설정 추가
도 메 인 이름 아래 auth 디 렉 터 리 를 예 로 들 어 도 메 인 이름 의 server 세그먼트 에 다음 과 같은 코드 를 추가 합 니 다.
location ^~ /auth/ {
location ~ .*.(php|php5)?$ {
fastcgi_pass unix:/tmp/php-cgi.sock;
fastcgi_index index.php;
include fcgi.conf;
}
auth_basic "Authorized users only";
auth_basic_user_file /usr/local/nginx/conf/auth.conf
}
auth_basic_user_file 이 htpasswd 파일 의 경로
3. Nginx 다시 시작
방문 하 다.http://yourdomainname/auth/ 사용자 이름과 비밀 번 호 를 입력 하 는 것 을 알려 줍 니 다.
만약 에 저희 가 디 렉 터 리 에 사용자 인증 을 추가 하려 면 위의 방법 이 안 된다 면 구체 적 인 디 렉 터 리 사용자 인증 을 소개 하 겠 습 니 다.
디 렉 터 리 에 사용자 인증 (auth basic) 을 추가 합 니 다.
nginx 의 authbasic 인증 은 apache 와 호 환 되 는 암호 파일 을 사용 하기 때문에 apache 의 htpasswd 를 통 해 암호 파일 을 생 성 해 야 합 니 다.
우선 시스템 의 htpasswd 를 찾 습 니 다:
find / �Cname htpasswd
보통 CentOS 에 apache 를 설치 합 니 다. 위 치 는 다음 과 같 습 니 다.
/usr/bin/htpasswd
찾 지 못 하면 직접 설치 하 세 요.
yum install apache
htpasswd 파일 주 소 를 찾 습 니 다.
htpasswd 파일 을 찾 으 면 사용 자 를 만 듭 니 다. 예 를 들 어 이 사용 자 는 xiaoquan 입 니 다.
/usr/bin/htpasswd �Cc /usr/local/ngnix/conf/authdb xiaoquan
위의 명령 은 nginx 설정 파일 디 렉 터 리 에 사용자 가 xiaoquan 인 authdb 암호 파일 을 만 들 었 습 니 다. 물론 다른 곳 에서 도 만 들 수 있 습 니 다. 여기 서 nginx 설정 파일 을 사용 하 는 것 이 편리 합 니 다.
위의 명령 은 리 턴 을 입력 하면 비밀 번 호 를 입력 하 라 는 알림 정 보 를 얻 고 두 번 입력 하면 추가 에 성공 할 수 있 습 니 다.
이어서 nginx 의 프로필 을 수정 합 니 다. 어떤 것 에 auth 를 추가 해 야 합 니 다.basic 서버 설정 에 다음 과 같은 내용 을 추가 합 니 다:
location /admin/ {
auth_basic "QuanLei Auth.";
auth_basic_user_file /usr/local/ngnix/conf/authdb;
}
마지막 으로 nginx 에 게 최신 설정 을 사용 하 게 합 니 다:
/usr/local/ngnix/sbin/nginx -s reload
보충 해 보 세 요. 클 러 스 터 환경 을 사용 했다 면 프 록 시 를 추가 해 야 합 니 다.Pass:
location /admin/ {
proxy_pass http://cluster/mgmt/;
auth_basic "QuanLei Auth.";
auth_basic_user_file /usr/local/ngnix/conf/authdb;
}
PS: perl 스 크 립 트 를 사용 하여 구현 하 는 방법 (코드 는 다음 과 같 습 니 다.)
#! /usr/bin/perl -w
#filename: add_ftp_user.pl
use strict;
#
print "#example: user:passwd
";
while () {
exit if ($_ =~/^
/);
chomp;
(my $user, my $pass) = split /:/, $_, 2;
my $crypt = crypt $pass, '$1$' . gensalt(8);
print "$user:$crypt
";
}
sub gensalt {
my $count = shift;
my @salt = ('.', '/', 0 .. 9, 'A' .. 'Z', 'a' .. 'z');
my $s;
$s .= $salt[rand @salt] for (1 .. $count);
return $s;
}
스 크 립 트 에 실행 가능 한 권한 부여:
chmod o+x add_user.pl
스 크 립 트 사용 방법:
./add_user.pl
user:password
생 성 된 사용자 이름 비밀 번 호 를 / usr / local / nginx / conf / vhost / nginx 에 붙 여 넣 기passwd 파일 중
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.