본문 바로가기
Docker

Nginx와 Tomcat 연동하기

by holy season 2024. 11. 5.
반응형

설정 파일

docker-compose.yml 파일 작성

version: '3'

services:
  web-server:
    image: nginx
    container_name: nginx
    ports:
      - "80:80"
    networks:
      - network

  web-application-server:
    image: tomcat
    container_name: tomcat
    ports:
      - "8080:8080"
    networks:
      - network

networks:
  network:
    driver: bridge

Nginx 파일 설정

upstream tomcat {
	server tomcat:8080;
}

server {
	listen 80;
    listen [::]:80;
    server_name localhost;
    
    location / {
    	proxy_pass http://tomcat;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

docker-compose.yml

서비스에 2개의 컨테이너 Nginx와 톰캣을 등록하였다.

같은 네트워크로 2개의 컨테이너를 묶어 컨테이너 내부에서 컨테이너 이름으로 접근 가능하도록 이름을 각각 부여해주었다.

Nginx의 포트는 80 포트, Tomcat 포트는 8080으로 설정해 주었다.

Nginx 의 설정 파일에 upstream으로 tomcat을 설정해 주었다.

upstream tomcat에는 컨테이너 tomcat:8080을 바라보도록 설정해 주었다.

Nginx server 블록에는 proxy_pass, proxy_set_header에 관련한 설정을 넣어줘 :80 포트에서 / 경로로 요청이 왔을 경우 proxy에 관련한 설정을 넣어줘 tomcat 컨테이너에서 작동하도록 변경해 주었다.

 

Nginx와 Tomcat 연동한 도커 서비스 화면

반응형