현재 위치: > 최신 기사 목록> Docker 컨테이너에서 Nginx 프록시를 구성하여 웹 서비스의 탄성 스케일링 기능을 향상시키는 방법

Docker 컨테이너에서 Nginx 프록시를 구성하여 웹 서비스의 탄성 스케일링 기능을 향상시키는 방법

M66 2025-06-19

Docker 컨테이너에서 Nginx 프록시를 구성하여 웹 서비스의 탄성 스케일링 기능을 향상시키는 방법

클라우드 컴퓨팅 시대에는 웹 서비스에 고 가용성과 고성능이 있는지 확인하는 것이 매우 중요합니다. 탄성 스케일링은 자원을 동적으로 스케일링하여 트래픽 변경에 적응하는 효과적인 솔루션입니다. Docker와 Nginx의 조합은 웹 서비스의 쉽게로드 밸런싱 및 탄성 스케일링 기능을위한 강력한 아키텍처 솔루션을 제공합니다.

기본 웹 서비스를 구축하십시오

먼저 테스트 할 간단한 웹 서비스를 구축해야합니다. 여기서는 Node.js 및 Express.js 프레임 워크를 사용하여 간단한 "Hello World"응용 프로그램을 만듭니다. 응용 프로그램의 코드는 다음과 같습니다.

const express = 요구 사항 ( 'Express');
const app = express ();

app.get ( '/', (req, res) => {
    res.send ( '안녕하세요, 세계!');
});

app.listen (3000, () => {
    Console.log ( '서버는 포트 3000'에서 실행 중);
});

다음으로 Docker를 사용 하여이 응용 프로그램을 컨테이너화해야합니다. 다음 내용으로 프로젝트의 루트 디렉토리에서 dockerfile을 만듭니다.

# dockerfile
노드에서 : 알파인

WorkDir /App

패키지 복사*.json ./

NPM 설치를 실행하십시오

복사 . .

3000 노출

cmd [ "노드", "app.js"]

이 dockerfile은 Node.js 이미지의 Alpine 버전을 정의하고, 작업 디렉토리를 설정하고, 종속성을 설치하고, 컨테이너가 시작될 때 Node.js 응용 프로그램을 실행합니다.

Docker 컨테이너를 구축하고 실행하십시오

다음 명령으로 Docker 컨테이너를 빌드하고 실행하십시오.

$ docker build -t myapp.
$ docker run -dp 3000 : 3000 myapp

실행 후 컨테이너는 3000 포트를 매핑하여 호스트의 IP 주소를 통해 응용 프로그램에 액세스 할 수 있습니다.

nginx 프록시 서버를 구성하십시오

웹 서비스의로드 밸런싱 및 탄성 스케일링을 달성하려면 Nginx를 리버스 프록시 서버로 구성해야합니다. 먼저 nginx를 설치하고 구성 파일을 편집하십시오.

$ sudo apt-get 업데이트
$ sudo apt-get install nginx
$ sudo nano /etc/nginx/conf.d/default.conf

nginx 구성 파일에서 다음을 추가하십시오.

# /etc/nginx/conf.d/default.conf
업스트림 app_servers {
    # Docker 컨테이너 IP 및 포트 정보를 여기에 작성하면 여러 서버가있을 수 있습니다.<CONTAINER_IP> : 3000;
}

서버 {
    80;

    위치 / {
        proxy_pass http : // app_servers;
        proxy_set_header 호스트 $ 호스트;
        proxy_set_header xeal-ip $ remote_addr;
    }
}

여기서는 Docker 컨테이너 인스턴스를 포함하는 "APP_SERVERS"그룹을 정의합니다. Nginx는 이러한 컨테이너 인스턴스에 대한 요청을 프록시하여로드 밸런싱을 달성합니다.

Nginx 서비스를 다시 시작하십시오

구성 파일을 저장하고 종료 한 후 Nginx 서비스를 다시 시작하여 새 구성을 적용하십시오.

$ sudo 서비스 nginx 재시작

탄성 팽창과 수축을 달성합니다

Nginx의로드 밸런싱을 구성함으로써 컨테이너의 확장이 매우 간단 해집니다. 컨테이너 인스턴스를 추가 해야하는 경우 새 Docker 컨테이너 인스턴스 만 실행하면 Nginx가 자동으로 새로운 컨테이너에 트래픽을 인식하고 배포합니다.

요약

웹 애플리케이션을 컨테이너화하고 NGINX 프록시 서버를 구성함으로써 고도로 고성능 탄성 스케일링 아키텍처를 구현할 수 있습니다. Docker와 Nginx의 조합은 간단한 컨테이너화 된 솔루션을 제공 할뿐만 아니라로드 밸런싱 및 트래픽 관리를보다 유연하고 효율적으로 만듭니다. 이 기사가 Docker 컨테이너에서 Nginx 프록시 서버를 구성하여 웹 서비스의 탄성 스케일링 기능을 향상시키는 방법을 이해하는 데 도움이되기를 바랍니다.