이전 글 - [Docker] Docker Nginx, Reverse Proxy로 서버 구동 및 보안 설정(with kibana) - 1
Nginx 구동 확인
http://localhost 로 접속하면 다음과 같이 index 파일이 출력된다.
index 파일이 출력되는 이유는 기본으로 생성되어있는 conf.d/default.conf 파일에 80포트를 리슨하고 있는 가상 서버가
root와 index direction 을 통해 index파일을 전달하도록 설정되어있기 때문이다.
Nginx Kibana 서버 설정
# conf.d/kibana.conf
server {
listen 5600;
listen [::]:5600;
server_name kibana;
location / {
proxy_pass http://kibana:5601;
}
location ~ (/app|/api|/internal|/translations|/bundles|/ui|/built_assets/|/elasticsearch|/spaces/enter) {
proxy_pass http://kibana:5601;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Host $http_host;
proxy_set_header Authorization "";
proxy_hide_header Authorization;
}
}
conf.d 디렉토리 내에 kibana.conf 파일을 생성해주었다. (nginx.conf 에 바로 입력해도 무관)
5600 포트로 접속 시 kibana 대시보드로 연결해주는 설정이다.
5601 포트로 설정하게되면 기본적으로 kibana가 5601 포트를 사용하기때문에 충돌이 나게된다.
location ~ (/app|/api|/internal|/translations|/bundles|/ui|/built_assets/|/elasticsearch|/spaces/enter) {
...
}
위 부분은 kibana에 접속하게되면 리다이렉션이 일어나게 되는데 그때 리다이렉션되는 주소들을 허용해주는 역할을 한다. (조사필요)
docker exec -it nginx nginx -s reload
해당 명령어를 통해 구성 파일을 다시 로드하고 localhost:5600 으로 접속하게 되면
kibana home으로 접속이 된다.
Nginx kibana 보안 적용 - Apache 유틸 설치
apt-get install apache2-utils
apache 유틸이 설치되어있지 않다면 해당 명령어를 통해 설치한다. (ubuntu 기준)
Nginx kibana 보안 적용 - htpasswd 파일 생성
sudo htpasswd -cm /etc/nginx/.htpasswd [계정 이름]
New password:
Re-type new password:
Adding password for user test
해당 명령어를 통해 계정과 계정의 비밀번호를 설정
docker를 통해 실행하기 때문에 .htpasswd 파일을 nginx와 공유된 볼륨으로 이동시켜준다.
-> nginx container 기준 /etc/nginx/.htpasswd 위치해야함
파일의 내용은 계정 아이디와 암호화된 비밀번호가 입력되어있다.
Nginx kibana 보안 적용 - 구성 파일 수정
작성한 kibana.conf 파일의 보안 정보를 추가한다.
server {
생략...
auth_basic "입력창에 표시할 문구";
auth_basic_user_file /etc/nginx/.htpasswd;
...생략
}
- auth_basic - 인증용 계정 입력 창에 표시할 문구, 웹 브라우저마다 표시되지 않는경우도 있는것 같다.
- auth_basic_user-file - 보안 적용할 htpasswd 파일
sudo docker exec -it nginx ngxin -s reload
작성이 되었으면 nginx 를 reload 해주고 다시 localhost:5600에 접속해주면
다음과 같이 계정을 인증해야하는 화면이 출력되고 계정을 입력하면 Kibana가 정상적으로 동작하는것을 확인할 수 있다.
'Docker' 카테고리의 다른 글
[Docker] 도커 컨테이너에서 도커 이미지 빌드 (with jenkins) (0) | 2021.12.15 |
---|---|
[Docker] Docker Nginx, Reverse Proxy로 서버 구동 및 보안 설정(with kibana) - 1 (0) | 2021.12.07 |
[Docker] Docker Filebeat를 이용하여 spring boot 로그 시각화 (0) | 2021.11.29 |
[Docker] Elasticsearch, Kibana를 docker-compose로 구동 (0) | 2021.11.25 |
[Docker] Docker Compose 사용 (0) | 2021.11.24 |