티스토리 뷰

 여기서는 NginX 에서 웹페이지에 비밀 번호 설정 및 페이지에 들어오는 ip 를 제한하는 방법을 알아 보겠습니다.


우선  IP 를 통해서 제한하는 방법 입니다.


location / {
    allow 192.168.1.1/24;
    allow 127.0.0.1;
    deny 192.168.1.2;
    deny all;
}



위의 설정대해 간단히 설명하자면 


allow 192.168.1.1/24; - 192.168.1.1 ~ 24 까지 허용

allow 127.0.0.1;  - 127.0.0.1 허용

deny 192.168.1.2; - 192.168.1.2 거부

deny all; - 전체 거부


ip를 통한 접속 허용 및 거부는 꽤 단순합니다. 필요하실때 참고하시기 바랍니다.


두번째 방법은 Password 파일을 이용하여 비밀번호를 설정하고 페이지에 접속시 아이디와 비밀번호를 요구하는 방법입니다. 


우선 우분투를 기준으로 apache2-utils 를 설치합니다.


  sudo apt-get install apache2-utils


설치를 완료 하셨다면 이제 계정과 비밀번호를 생성할 차례 입니다.

sudo htpasswd -c /etc/nginx/.htpasswd exampleuser


 아래와 같이 커맨드로 입력해주시면 비밀번호 셋팅과 함께 완료 하실 수 있습니다. 제경우 passwd 폴더를 따로 만들었던 경우 입니다.



 위의 명령어로 사용자와 비밀번호를 모두 설정 하셨다면 아래와 같이 .htpasswd 에서 사용자 계정과 암호화된 비밀번호를 확인하실수 있으실 것입니다.



 이제 생성된 파일과 서버 설정을 연결할 차례 입니다. nginx 에서 설정하신 가상 호스트 파일을 열으신 후 아래의 설정 을 삽입하여 주시면 됩니다.

 
auth_basic "Restricted";
auth_basic_user_file /etc/nginx/.htpasswd;




모두 적용 하셨으면 service nginx restart 로 재시작 해주시기 바랍니다.


아래는 정상적으로 적용된 모습입니다.



ps. 굳이 웹페이지로 만들어 두고 막는 이유는 여러가지가 있겠지만 제 경우 컨텐츠 페이지를 컨텐츠 페이지 주소 뿐만 아니라 마스터 서버도 확인이 가능하고 퍼블리싱을 다른 주소에서 하기 때문에 일브로 서버를 2 이상으로 나누어 운영할때 사용하였습니다. 물론 robots.txt 를 이용하여 검색을 제한 할수도 있지만 일부 사설 검색엔진(?) 의 경우 robots.txt 를 무시하기 때문에 큰 의미가 없습니다. 참고하시기 바랍니다.


더욱 자세한 설정들에 대해서는 아래의 주소들을 참고하시기 바랍니다.


참고 1 : NginX 공식 가이드

참고 2 : DigitalOcean Auth 가이드

공유하기 링크
댓글