본문 바로가기
공부/프로그래밍

[centos7] pinpoint-docker 와 nginx 와 연결하기

by demonic_ 2019. 1. 20.
반응형

핀포인트는 정말 좋은 툴이다. 그런데 로그를 보면 쿼리가 어떻게 돌았는지, 서버단에서 프로세스가 어떤 순서로 진행되었는지 모두 보여준다. 그래서 외부에 노출하기가 굉장히 꺼려진다. 그래서 nginx를 통해서만 접속이 가능하게끔 하였고, IP를 통제하였다. 다만 몇가지 변수가 있다.


1) nginx 도 도커를 이용하고 싶었지만, 그럴경우 localhost:[port] 로 접근할 수 없다. 결국 하나마나한 상황.


2) nginx 와 pinpoint 를 하나로 엮는 도커이미지를 만드는 것도 괜찮을거라 생각했지만 그렇게까지 할 시간적 여유가 없어서 가상서버에 설치하는 것으로 마무리했다.


3) 이렇게 구축할 경우, Realtime Active Thread Chart 가 안나오니 구축에 참조.

관련포스팅:

[pinpoint-docker] Realtime Active Thread Chart 안나오는 문제

http://lemontia.tistory.com/809




만약 핀포인트를 설치하지 않았다면 아래 포스팅 참조.


- [centos7] pinpoint(docker) 서버 구축 및 was(tomcat-docker) 연결

https://blog.naver.com/varkiry05/221441388036




1. pinpoint-docker 설정 변경


별다른 설정이 없다면 port 가 외부노출 된다.

docker-compose 파일을 수정해서 localhost 로만 WEB 포트에 접근이 가능하도록 수정한다.

기본포트인 8079 로 띄운다.(root 폴더의 .env 에 8079로 설정되어 있다. 변경하고 싶으면 직접 입력해 바꿔도 상관없다.)


vi docker-compose.yml


...

pinpoint-web:

...

ports:

  - "9997:9997"

      - "127.0.0.1:${WEB_PAGE_PORT:-8080}:8080"

      # 기존 0.0.0.0 오픈을 막고 위의 것으로 대체한다.

      # - "${WEB_PAGE_PORT:-8080}:8080"

    ...

...


pinpoint-docker 를 새로 띄운다.


docker-compose down

docker-compose up --build -d



2. nginx 설치 및 포워딩


yum 을 이용해 설치한다.


yum install nginx -y



설정파일을 수정한다.


vi /etc/nginx/nginx.conf


user nginx;

worker_processes auto;

error_log /var/log/nginx/error.log;

pid /run/nginx.pid;


# Load dynamic modules. See /usr/share/nginx/README.dynamic.

include /usr/share/nginx/modules/*.conf;


events {

    worker_connections 1024;

}


http {

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '

                      '$status $body_bytes_sent "$http_referer" '

                      '"$http_user_agent" "$http_x_forwarded_for"';


    access_log  /var/log/nginx/access.log  main;


    sendfile             on;

    tcp_nopush          on;

    tcp_nodelay         on;

    keepalive_timeout   65;

    types_hash_max_size 2048;


    include             /etc/nginx/mime.types;

    default_type        application/octet-stream;


    include /etc/nginx/conf.d/*.conf;



    # pinpoint 연결

    upstream tomcat-list {

        server localhost:8079;

    }


    server {

        # nginx 가 80포트 감시

        listen          80;

        server_name     localhost;


        # 특정 IP만 허용, 그외 모두 차단

allow [접속을 허용할 IP 등록];

deny all;


        # 80 포트로 들어오는 모든 요청을 'tomcat-list' 로 보냄

        location / {

            proxy_pass http://tomcat-list;

        }


        error_page   500 502 503 504  /50x.html;

        location = /50x.html {

            root   html;

        }

    }

}



80 포트 방화벽을 해제한다.


firewall-cmd --permanent --zone=public --add-port=80/tcp

firewall-cmd --reload



nginx 를 실행한다.


systemctl start nginx



그럼 이제 정상적으로 나오는 것을 확인할 수 있다.


다만 위에서 언급한것처럼 Realtime Active Thread Chart 는 Closed connection 이 뜬다.


반응형

댓글