Nginx로 리버스 프록시를 설정하면서 여러 시행 착오를 겪었다.특히 단순해 보이지만 경로의 마지막에 '/'를 붙이는 것과 붙이지 않는 것의 차이를 정리하겠다. Nginx에서 경로 끝에 /를 붙이는 것과 붙이지 않는 것의 차이는 proxy_pass에서 다르게 동작한다.경로 끝에 /가 붙는 경우proxy_pass http://challet.world/;원본 요청 경로를 유지예를 들어, 클라이언트가 https://challet.world/eureka/somepath로 요청을 하면, 이 요청은 http://challet-discovery-spring:8761/somepath로 전달됨즉, 클라이언트의 경로가 그대로 백엔드 서버로 전달함 nginx.conflocation /eureka/ { proxy_pas..
프로젝트를 진행하면서 react, springboot에 대한 reverse proxy는 무난하게 해결했는데 jenkins와 grafana에 대한 reverse proxy를 설정하면서 애를 먹었다. 계속 react로 리다이렉트가 되는 오류를 경험했다. 이를 해결하는 방법을 공유하고자 한다. 내가 진행했던 과정은 아래와 같다.원인은 아래와 같이 추정했다.challet.world:8080으로 접속시 자동으로 login?from=%2F 로 리다이렉트 된다.그래서 아래와 같이 시도해봤으나# Jenkins 경로 처리location /jenkins/ { proxy_pass http://jenkins:8080; proxy_set_header Host $host; proxy_set_header X-Rea..
Dockerfile이란?Dockerfile이란?DockerfileDocker 이미지는 Dockerhub을 통해 다운받아서 사용할 수 있다. 이 Docker 이미지들도 누군가 만들어서 Dockerhub에 올려놓은 것이다. Docker 이미지를 만드려면?Dockerfile이라는 것을 활용해서 Docker 이미지를 만들 수 있다.Dockerhub에 올려놓은 Docker 이미지가 아닌, 나만의 Docker 이미지를 만들고 싶을 수 있다. 이럴 때 Dockerfile을 활용하면 나만의 Docker 이미지를 만들 수 있다. 정리하자면, Dockerfile이란 Docker 이미지를 만들게 해주는 파일이다. Dockerfile 문법[FROM]생성할 image의 베이스가 되는 image를 설정한다.Dockerfile 작..
Docker Volume(도커 볼륨)컨테이너가 가진 문제점Docker를 활용하면 특정 프로그램을 컨테이너로 띄울 수 있다. 이 프로그램에 기능이 추가되면 새로운 이미지를 만들어서 컨테이너를 실행시켜야 한다. 이 때, Docker는 기존 컨테이너에서 변경된 부분을 수정하지 않고, 새로운 컨테이너를 만들어서 통째로 갈아끼우는 방식으로 교체한다. 이런 특징 때문에 기존 컨테이너를 새로운 컨테이너로 교체하면 기존 컨테이너 내부에 있던 데이터도 같이 삭제된다. 만약 이 컨테이너가 MySQL을 실행시키는 컨테이너라면 MySQL에 저장된 데이터도 같이 삭제된다. 따라서 컨테이너 내부에 저장된 데이터가 삭제되면 안되는 경우 볼륨(Volume)이라는 개념을 활용해야 한다. Docker Volume(도커 볼륨)이란?도커 ..
Docker를 사용하는 이유이식성특정 프로그램을 다른 곳으로 쉽게 옮겨서 설치 및 실행할 수 있는 특성 기타 장점매번 귀찮은 설치 과정을 일일이 거치지 않아도 됨항상 일관되게 프로그램을 설치 가능(버전, 환경 설정, 옵션, 운영 체제 등)각 프로그램이 독립적인 환경에서 실행되기 때문에 프로그램 간에 서로 충돌이 일어나지 않음IP와 PortIPIP(Internet Protocol Address)네트워크 상의 장치들을 식별하기 위한 고유한 주소IPv4(32비트), IPv6(128비트)ex) 172.30.1.96 PortPort Number한 컴퓨터 내에서 실행되고 있는 특정 프로그램의 주소특정 IP 주소 내에서 실행되는 특정 서비스를 식별하는 데 사용. 0 ~ 65535 사이의 숫자로 구성ex) 13.250..