[Nginx] Basic Auth

반응형

이번글에서는 nginx의 basic auth를 사용해 인가된 사용자에게만 접근을 허용하는 방법에 대해 알아보도록 하겠습니다.

1. Basic Auth란?

nginx에서 가장 손쉽게 사용자 접근을 제한하는 방법입니다.

만약, 일반 사용자들에게는 접근을 허용하지 않아야되는 url가 있다면 basic auth를 사용해 손쉽게 인가되지 않은 사용자들의 접근을 제한할 수 있습니다.

2. .htpasswd

nginx에 basic auth를 적용하기위해선 simple password file인 .htpasswd 파일을 생성해야 합니다.

.htpaaswd 파일을 생성하기위해 먼저 아래의 명령어로 apache bench tool을 다운로드 받습니다.

# download apache bench tools
yum install httpd-tools

다음으로 아래의 명령어를 입력해 userName/password를 생성합니다.

htpaaswd -c /etc/nginx/.htpasswd userName

위에서 -c 에는 .htpasswd 파일을 생성할 경로를, 뒤의 userName에는 사용할 userName을 입력하면됩니다. 이후 입력한 경로에 가보면 아래와 같이 htpasswd 파일이 생성된 것을 확인할 수 있습니다.

3. Set Basic Auth

이제 nginx에 basic auth를 적용해보겠습니다.

nginx에 basic auth를 적용하는 방법은 굉장히 간단합니다.

아래와 같이 basic auth를 적용할 uri에 basic auth 사용하겠다 선언하고, 생성한 .htpasswd 파일의 location을 지정해주기만 하면 됩니다.

nginx.conf

location / {
           # basic uath
           auth_basic "This is Secure Area";
           auth_basic_user_file /etc/nginx/.htpasswd;

        try_files $uri $uri/ =404;
}

nginx을 reload후 /에 접근해보면 아래와 같이 userName과 password를 물어보는 창이 뜨게됩니다.

여기에 앞서 생성한 userName과 password를 입력해야지만 해당 uri에 접근할 수 있습니다.

이처럼 basic auth를 사용하면 '간단하게' 인가되지 않은 사용자의 접근을 제한할 수 있습니다. 👏👏👏


참고 자료 : https://www.udemy.com/course/nginx-fundamentals/


반응형

'Nginx' 카테고리의 다른 글

[Nginx] Let's Encrypt - SSL Certificates  (0) 2020.08.31
[Nginx] Hardening Nginx  (0) 2020.08.31
[Nginx] Rate Limiting  (0) 2020.08.31
[Nginx] HTTPS (SSL)  (0) 2020.08.31
[Nginx] HTTP/2  (0) 2020.08.31

댓글

Designed by JB FACTORY