Nginx은(는) 다음 용도로 사용되는 무료 오픈 소스 웹 서버입니다: 로드 밸런싱, 버퍼링 및 캐싱. 2004년 출시 이후 Nginx는 웹 서버 확장 및 리버스 프록시용으로 인기를 얻었습니다. 높은 성능과 대량의 연결을 처리하는 뛰어난 기능 덕분에 들어오는 트래픽을 관리하고 제어하는 데 사용됩니다.
HTTP 인증은 어떻게 작동하나요?
기본 HTTP 인증에서는 서버의 모든 경로가 차단되며 인증을 위해 적절한 자격 증명이 필요합니다. 사용자가 보안 리소스에 액세스하려고 할 때마다 서버는 사용자에게 WWW-Authenticate 헤더 및 401 Unauthorized 응답을 보냅니다. 사용자가 사용한 사용자 이름과 비밀번호가 올바르고 키 파일과 일치하면 연결이 설정되고, 그렇지 않으면 거부됩니다.
이 튜토리얼에서는 Ubuntu 20.04에서 Nginx로 기본 HTTP 인증을 설정하는 단계를 안내합니다..
전제 조건
이 튜토리얼을 따라 하려면 다음이 필요합니다:
- 시스템에 설치된 Ubuntu 최신 버전.
- 시스템 사용자는 sudo 권한.
- 서버에 Nginx가 설치 및 구성되어 있어야 합니다.
1단계: 소프트웨어 리포지토리 업데이트
시스템에 새로운 소프트웨어나 API 패키지를 설치하기 전에, 오류나 패키지 충돌을 방지하기 위해 리포지토리를 새로 고침합니다. 먼저 다음 sudo 명령어를 사용하여 소프트웨어를 업데이트합니다:
|
1 |
sudo apt-get update |
이제 소프트웨어 리포지토리를 업데이트했으므로 필요한 apache2 패키지를 설치해 보겠습니다.
2단계: 필요한 패키지 설치
디렉토리에 대한 HTTP 인증을 설정하고 있으므로, htpasswd 명령어를 사용하여 암호화된 비밀번호를 생성합니다. 다음 명령어를 사용하여 apache2-utils 패키지를 설치합니다:
|
1 |
sudo apt-get install apache2-utils |
3단계: 사용자 및 비밀번호 생성
이 단계에서는 기본 HTTP 인증 자격 증명을 설정합니다. 루트 디렉토리 아래에 사용자와 관련된 .htpasswd 파일을 생성합니다. 비밀번호는 암호화되며, 파일 이름은 원하는 대로 지정할 수 있습니다. 다음 명령어를 사용하여 파일을 생성하고 암호화된 비밀번호로 사용자를 추가합니다:
|
1 |
sudo htpasswd -c /etc/nginx/.htpasswd cloudsigma |

다음으로, 다음 명령어를 사용하여 새로 생성된 파일을 확인합니다:
|
1 |
cat /etc/nginx/.htpasswd |
4단계: Nginx 구성 업데이트
HTTP 기본 인증 자격 증명이 준비되면 Nginx를 설정하고 대상 웹사이트에서 사용해 보겠습니다. HTTP 기본 인증을 설정하려면 auth_basic 및 auth_basic_user_file 지시문이 필요합니다. auth_basic 지시문의 값은 문자열 형식인 반면, auth_basic_user_file의 값은 3단계.
에서 생성된 비밀번호 파일의 경로입니다. 대상 웹사이트의 구성 파일에 이 두 지시문을 포함하는 것이 중요합니다. 대상 웹사이트의 위치는 /etc/nginx/sites-available 디렉토리에서 찾을 수 있습니다. nano 편집기를 사용하여 구성 파일을 엽니다:
|
1 |
sudo nano /etc/nginx/sites-available/default |
그런 다음, 이 두 지시문을 location 섹션 아래에 추가합니다:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 |
. . . server_name localhost; location / { # First attempt to serve request as file, then # as directory, then fall back to displaying a 404. try_files $uri $uri/ =404; # Uncomment to enable naxsi on this location # include /etc/nginx/naxsi.rules auth_basic "Private Property"; auth_basic_user_file /etc/nginx/.htpasswd; } . . . |
지시문을 추가한 후 구성 파일을 저장하고 닫습니다.
5단계: Nginx 재시작
다음으로, 가상 호스트에 변경 사항을 적용하기 위해 Nginx 서비스를 재로드하거나 재시작합니다. 그 후, 기본 HTTP 인증을 사용하여 보안 도메인에 액세스를 시도합니다. Nginx 서비스를 활성화하려면 다음 명령어를 사용하세요:
|
1 |
sudo service nginx reload |
6단계: 보안 웹 액세스
Nginx를 재시작한 후, 다음 단계는 선호하는 브라우저에서 IP 주소 또는 도메인 이름으로 접속을 시도하는 것입니다. IP 주소를 클릭하면 http://your_domain_name/ 브라우저에서 입력하면 인증을 위한 자격 증명을 입력하라는 프롬프트가 열립니다. 올바른 사용자 이름과 비밀번호를 입력하면 기본 Nginx 홈 페이지가 표시됩니다.
결론
이 튜토리얼에서는 Nginx로 기본 HTTP 인증을 구성하는 방법을 배웠습니다. 기본적인 사용자 이름/비밀번호 인증은 Nginx에서 보안 연결을 설정하기 위한 여러 인증 옵션 중 하나일 뿐입니다.
서버 인증에 사용되는 다른 강력한 옵션들이 있습니다. 예를 들어, 사용할 수 있는 몇 가지 대중적인 방법으로는 API 연동, JSON Web Token, SSH 키 기반 인증 등이 있습니다. 강력한 보안 메커니즘을 확보하는 것이 처음에는 까다로워 보일 수 있지만, 개인 정보를 보호하는 데 매우 효과적입니다.
또한, Nginx에 대한 다양한 학습 자료와 튜토리얼을 저희 블로그에서 확인하실 수 있습니다.:
- Nginx 서버 및 위치 블록 선택 알고리즘 개요
- Ubuntu 20.04에서 Nginx로 Laravel 설치 및 구성하기
- Ubuntu 20.04에서 PostgreSQL, Nginx 및 Gunicorn으로 Django 설정하기
즐거운 컴퓨팅 되세요!

댓글
아직 댓글이 없습니다. 첫 번째로 작성해 보세요.