현재 위치: > 최신 기사 목록> Docker에서 웹 서버로드 밸런싱을 달성하기 위해 Nginx를 사용하는 방법

Docker에서 웹 서버로드 밸런싱을 달성하기 위해 Nginx를 사용하는 방법

M66 2025-06-21

Docker에서 웹 서버로드 밸런싱을 달성하기 위해 Nginx를 사용하는 방법

최신 웹 애플리케이션 아키텍처에서로드 밸런싱은 시스템 가용성, 성능 및 확장 성을 향상시키는 중요한 수단입니다. 트래픽을 여러 웹 서버에 배포함으로써 압력을 효과적으로 분산시키고 웹 사이트가 여전히 높은 방문에서 안정적으로 작동 할 수 있도록 할 수 있습니다. 이 기사는 Nginx 프록시 서버를 사용하여 Docker 환경에서 여러 웹 서버의로드 밸런싱을 구성하는 방법을 자세히 소개합니다.

준비

먼저 Docker 및 Nginx를 설치해야합니다. 설치 방법은 Docker 및 Nginx의 공식 문서를 참조하고 운영 체제에 따라 적절한 설치 단계를 선택하십시오.

여러 웹 서버 인스턴스를 만듭니다

로드 밸런싱을 구현하기 전에 먼저 여러 웹 서버 인스턴스를 생성해야합니다. Docker를 사용하여 여러 웹 서버를 배포합니다. 다음은 웹 서버 이미지를 구축하기위한 간단한 dockerfile입니다.

Nginx에서 : 최신
복사 index.html/usr/share/nginx/html/
nginx.conf /etc/nginx/nginx.conf를 복사하십시오
80 노출

이 dockerfile에서는 공식 NGINX 이미지를 기반으로 웹 서버 이미지를 작성하여 index.html 및 nginx.conf 파일을 컨테이너에 복사합니다. 표시 해야하는 웹 페이지 컨텐츠는 index.html에 배치 할 수 있습니다. nginx.conf는 Nginx 서비스의 관련 설정을 구성하는 데 사용됩니다.

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

다음으로로드 밸런싱을 달성하려면 Nginx 프록시 서버를 구성해야합니다. nginx.conf라는 구성 파일을 만들고 다음을 추가하십시오.

http {
  상류 백엔드 {
    서버 웹 1 : 80;
    서버 웹 2 : 80;
  }

  서버 {
    80;

    위치 / {
      proxy_pass http : // 백엔드;
      proxy_set_header 호스트 $ 호스트;
    }
  }
}

이 구성에서는 두 개의 웹 서버 (Web1 및 Web2)가 포함 된 Backend라는 업스트림 서버 그룹을 정의합니다. 서버 블록에서는 Nginx 프록시 서버의 80 포트를 바인딩하고 Proxy_pass 지시문을 통해 트래픽을 백엔드 그룹으로 전달합니다. proxy_set_header는 요청 된 호스트 헤더가 올바르게 전달되는지 확인하는 데 사용됩니다.

웹 서버 및 nginx 프록시 서버를 시작하십시오

Nginx 구성을 완료 한 후 Docker를 통해 웹 서버 및 Nginx 프록시 서버를 시작할 수 있습니다. 먼저 웹 서버 이미지를 빌드하고 다음 명령을 실행하십시오.

Docker Build -t 웹 서버.

그런 다음 여러 웹 서버 인스턴스를 실행하십시오. 다음 명령을 실행하여 두 개의 웹 서버를 시작할 수 있습니다.

Docker Run -D -Name Web1 Web -Server
Docker Run -D -Name Web2 웹 서버

다음으로 Nginx 프록시 서버 인스턴스를 시작하고 다음 명령을 실행하십시오.

Docker Run -D -P 80:80 -이름 nginx -proxy -link web1 -link web2 nginx

여기서 -링크 매개 변수는 nginx 프록시 서버를 두 개의 웹 서버 인스턴스에 연결합니다. 이런 식으로 Nginx는 웹 서버에 트래픽을 골고루 배포 할 수 있습니다.

테스트로드 밸런싱

이제 브라우저를 통해 Nginx 프록시 서버의 IP 주소 또는 도메인 이름에 액세스하여로드 밸런싱 기능을 테스트 할 수 있습니다. 각 요청은 Nginx 프록시 서버에 의해 다른 웹 서버 인스턴스로 전달되어로드를 공유합니다.

또한 웹 서버 컨테이너의 로그를 확인하여 요청이 여러 인스턴스에 고르게 할당되었는지 확인할 수 있습니다.

Docker Logs Web1
Docker Logs Web2

결론적으로

Docker와 Nginx 프록시 서버를 결합하여 여러 웹 서버의로드 밸런싱을 쉽게 달성 할 수 있습니다. 이 방법은 운영하기 간단 할뿐만 아니라 유연성과 확장 성이 높으며 대부분의 웹 응용 프로그램의 요구를 충족시킬 수 있습니다. 이 기사의 내용이 도움이되기를 바랍니다.