반응형
Nginx 이미지를 Docker Hub에서 받아오기
docker pull nginx
Nginx 컨테이너 생성 및 실행
docker run -d -p 80:80 --name my-nginx nginx
호스트로 들어오는 포트 80, 현재 컨테이너의 80포트로 연결
Nignx 파일
server {
listen 80;
server_name localhost;
location / {
proxy_pass http://api-container:8000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
nignx 가 받아서, 실행중인 API SERVER 컨테이너명인 api-container의 8000 포트로 넘겨줌.
Nginx 컨테이너와 API SERVER 컨테이너를 연결하기 위해선
1. Network 설정
2. Docker-compose 파일 설정
방법이 있다.
1번이 간단하다.
docker network create my-network
이러한 네트워크를 생성해주고
API SERVER 컨테이너와 Nginx 컨테이너를 실행할 때 --network my-network 옵션을 넣어주면 된다.
그리고 설정 파일을 마운트 하는 방법이 있는데,
-v 옵션을 주고 호스트 경로:컨테이너 경로 로 지정해 주면 된다.
그러면 호스트의 설정 파일을 컨테이너의 설정 파일에 적용해준다.
docker run --name nginx-container --network my-network -v /path/to/nginx.conf:/etc/nginx/conf.d/default.conf nginx
nginx 컨테이너와 api 컨테이너 연결하려면
보통
nginx 설정파일에서 listen을 80으로 두고, proxy를 apiserver 8080 포트로 둔 다음
nginx 컨테이너 실행 시 network를 특정 네트워크로 설정하고, 포트는 80:80 으로 해서, 사용자가 외부에서 호스트의 80으로 들어오면 nginx 컨테이너의 80 포트로 들어오게 한 뒤에 api 서버는 8080 포트로 열리게 한 다음 컨테이너 실행 시 포트를 8080:8080 으로 설정하고 nginx에서 설정했던 네트워크와 이름을 맞춰준다.
반응형
'[서버] > [SpringBoot Kotlin]' 카테고리의 다른 글
SpringBoot Mysql프로젝트 Docker로 실행하기 (0) | 2023.04.19 |
---|---|
Docker Mysql (0) | 2023.04.11 |
Docker 사용하기 (0) | 2023.04.11 |
순환참조가 문제 삼아지는 시기 (0) | 2023.04.10 |
ManyToMany 관계에 데이터 추가(INSERT) 하기 (0) | 2023.04.10 |