간혹 홈페이지를 접속 하다보면 따로 로그인 페이지가 나타나는게 아니라 alert 창으로 로그인 화면이 뜨고 로그인을 해야 접속이 가능한 홈페이지를 볼 수 있다. 사내 내부 망 페이지를 구축하면서 알게된 내용을 정리한다.
포스트 내용은 nginx가 이미 설치되어 있다는 전제하에 설명하는 내용입니다.
환경 정보
ubuntu 18.04.3 LTS / nginx 1.14.0 /AWS
설치
apache2-utils를 먼저 설치해준다.
이때 실제 아파치를 사용하는 것이 아닌 , apache2-utils에 있는 계정정보 생성기능을 사용하려고 하는 것이라 추후 계정 정보를 추가할 일이 없다면 유틸은 제거해도 된다.
$ apt-get install apache2-utils
이것만 기본 설치는 끝
계정 정보 생성하기
사이트에 접속 할 수 있는 계정과 비밀번호를 추가하기
$ htpasswd -c /etc/nginx/.htpasswd 계정아이디
New password : 사이트 접속 비밀번호
Re-type new Password : 다시 한번 입력
정상적으로 등록 되었는지 확인하기
$ cat /etc/nginx/.htpasswd
이용자를 추가하는 경우도 똑같은 과정을 반복하면 된다.
이걸로 계정 정보는 생성 완료.
Nginx 설정하기
nginx를 설치한 설정 파일을 열어준다.
기본 설정 파일의 위치는 /etc/nginx/sites-enabled/default
$ nano /etc/nginx/sites-enabled/default
server 부분에 하단과 같은 내용 추가
auth_basic "Security"
auth_basic_user_file /etc/nginx/.htpasswd;
모든 도메인 접근시 로그인하도록 구성
server 하단에 설정한다.
server {
listen 80;
server_name localhost;
auth_basic "Security"
auth_basic_user_file /etc/nginx/.htpasswd;
location / {
...
}
}
특정 페이지만 로그인하도록 구성
location 하단에 설정한다.
server {
listen 80;
server_name localhost;
location /test/ {
auth_basic "Security"
auth_basic_user_file /etc/nginx/.htpasswd;
}
}
모든 작업이 끝나면 nginx 서버를 꼭 리스타트 시켜준다.
$ service nginx restart
끝.