블로그로 돌아가기

Ubuntu 20.04에서 Nginx로 기본 HTTP 인증 구성하기

Ubuntu 20.04에서 Nginx로 기본 HTTP 인증 구성하기

Nginx은(는) 다음 용도로 사용되는 무료 오픈 소스 웹 서버입니다: 로드 밸런싱, 버퍼링 및 캐싱. 2004년 출시 이후 Nginx는 웹 서버 확장 및 리버스 프록시용으로 인기를 얻었습니다. 높은 성능과 대량의 연결을 처리하는 뛰어난 기능 덕분에 들어오는 트래픽을 관리하고 제어하는 데 사용됩니다.

HTTP 인증은 어떻게 작동하나요?

기본 HTTP 인증에서는 서버의 모든 경로가 차단되며 인증을 위해 적절한 자격 증명이 필요합니다. 사용자가 보안 리소스에 액세스하려고 할 때마다 서버는 사용자에게 WWW-Authenticate 헤더401 Unauthorized 응답을 보냅니다. 사용자가 사용한 사용자 이름과 비밀번호가 올바르고 키 파일과 일치하면 연결이 설정되고, 그렇지 않으면 거부됩니다.

이 튜토리얼에서는 Ubuntu 20.04에서 Nginx로 기본 HTTP 인증을 설정하는 단계를 안내합니다..

전제 조건

이 튜토리얼을 따라 하려면 다음이 필요합니다:

1단계: 소프트웨어 리포지토리 업데이트

시스템에 새로운 소프트웨어나 API 패키지를 설치하기 전에, 오류나 패키지 충돌을 방지하기 위해 리포지토리를 새로 고침합니다. 먼저 다음 sudo 명령어를 사용하여 소프트웨어를 업데이트합니다:

이제 소프트웨어 리포지토리를 업데이트했으므로 필요한 apache2 패키지를 설치해 보겠습니다.

2단계: 필요한 패키지 설치

디렉토리에 대한 HTTP 인증을 설정하고 있으므로, htpasswd 명령어를 사용하여 암호화된 비밀번호를 생성합니다. 다음 명령어를 사용하여 apache2-utils 패키지를 설치합니다:

3단계: 사용자 및 비밀번호 생성

이 단계에서는 기본 HTTP 인증 자격 증명을 설정합니다. 루트 디렉토리 아래에 사용자와 관련된 .htpasswd 파일을 생성합니다. 비밀번호는 암호화되며, 파일 이름은 원하는 대로 지정할 수 있습니다. 다음 명령어를 사용하여 파일을 생성하고 암호화된 비밀번호로 사용자를 추가합니다:

User and Password

다음으로, 다음 명령어를 사용하여 새로 생성된 파일을 확인합니다:

newly-created file

4단계: Nginx 구성 업데이트

HTTP 기본 인증 자격 증명이 준비되면 Nginx를 설정하고 대상 웹사이트에서 사용해 보겠습니다. HTTP 기본 인증을 설정하려면 auth_basicauth_basic_user_file 지시문이 필요합니다. auth_basic 지시문의 값은 문자열 형식인 반면, auth_basic_user_file의 값은 3단계.

에서 생성된 비밀번호 파일의 경로입니다. 대상 웹사이트의 구성 파일에 이 두 지시문을 포함하는 것이 중요합니다. 대상 웹사이트의 위치는 /etc/nginx/sites-available 디렉토리에서 찾을 수 있습니다. nano 편집기를 사용하여 구성 파일을 엽니다:

그런 다음, 이 두 지시문을 location 섹션 아래에 추가합니다:

지시문을 추가한 후 구성 파일을 저장하고 닫습니다.

5단계: Nginx 재시작

다음으로, 가상 호스트에 변경 사항을 적용하기 위해 Nginx 서비스를 재로드하거나 재시작합니다. 그 후, 기본 HTTP 인증을 사용하여 보안 도메인에 액세스를 시도합니다. Nginx 서비스를 활성화하려면 다음 명령어를 사용하세요:

6단계: 보안 웹 액세스

Nginx를 재시작한 후, 다음 단계는 선호하는 브라우저에서 IP 주소 또는 도메인 이름으로 접속을 시도하는 것입니다. IP 주소를 클릭하면 http://your_domain_name/ 브라우저에서 입력하면 인증을 위한 자격 증명을 입력하라는 프롬프트가 열립니다. 올바른 사용자 이름과 비밀번호를 입력하면 기본 Nginx 홈 페이지가 표시됩니다.

결론

이 튜토리얼에서는 Nginx로 기본 HTTP 인증을 구성하는 방법을 배웠습니다. 기본적인 사용자 이름/비밀번호 인증은 Nginx에서 보안 연결을 설정하기 위한 여러 인증 옵션 중 하나일 뿐입니다.

서버 인증에 사용되는 다른 강력한 옵션들이 있습니다. 예를 들어, 사용할 수 있는 몇 가지 대중적인 방법으로는 API 연동, JSON Web Token, SSH 키 기반 인증 등이 있습니다. 강력한 보안 메커니즘을 확보하는 것이 처음에는 까다로워 보일 수 있지만, 개인 정보를 보호하는 데 매우 효과적입니다.

또한, Nginx에 대한 다양한 학습 자료와 튜토리얼을 저희 블로그에서 확인하실 수 있습니다.:

즐거운 컴퓨팅 되세요!

author

Shreyas Patil

작성자 · CloudSigma

Preslav Dobrev는 CloudSigma의 크리에이티브 디자이너로서, 전통적이고 혁신적인 마케팅 채널을 활용하여 일관된 비즈니스 정체성을 구축하는 데 중점을 두고 있습니다. 그는 영향력 있는 브랜드 내러티브를 창출하기 위해 예술적 비전과 전략적 마케팅을 결합하는 데 능숙합니다.

댓글

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