현재 위치: > 최신 기사 목록> Docker Compose 및 Nginx를 사용하여 PHP 응용 프로그램의 고 가용성로드 밸런싱 배포를 달성합니다.

Docker Compose 및 Nginx를 사용하여 PHP 응용 프로그램의 고 가용성로드 밸런싱 배포를 달성합니다.

M66 2025-08-04

Docker Compose 및 Nginx를 통한 PHP 애플리케이션의 고 가용성 배포

최신 웹 애플리케이션 개발에서 고 가용성은 주요 요구 사항 중 하나입니다. Docker Compose 및 Nginx를 사용하면 PHP 응용 프로그램의 고 가용성 배포를 쉽게 달성 할 수있어 고장이 발생할 때 응용 프로그램이 여전히 안정적이고 이용 가능하도록합니다.

Docker는 주요 컨테이너화 플랫폼으로서 독립 컨테이너에서 응용 프로그램과 그 종속성을 캡슐화 할 수 있습니다. Docker Compose는 멀티 컨테이너 응용 프로그램의 정의 및 관리 프로세스를 단순화합니다.

Nginx는 고성능 웹 서버 일뿐 만 아니라 널리 사용되는 리버스 프록시 서버이기도합니다. 요청 된 트래픽을 여러 백엔드 서버에 배포하고로드 밸런싱을 실현하며 전체 시스템의 가용성 및 성능을 향상시킬 수 있습니다.

Docker Compose 서비스를 정의하십시오

먼저 여러 응용 프로그램 인스턴스 및 Nginx 컨테이너를 정의하려면 Docker-Compose.yml 파일을 작성해야합니다. 예제 구성은 다음과 같습니다.

 버전 : '3'
서비스 :
  app1:
    짓다:
      문맥: .
      dockerfile : dockerfile
    다시 시작 : 항상
  app2 :
    짓다:
      문맥: .
      dockerfile : dockerfile
    다시 시작 : 항상
  nginx :
    이미지 : nginx
    포트 :
      - "80:80"
    볼륨 :
      - ./nginx.conf:/etc/nginx/nginx.conf
    다시 시작 : 항상

이 구성에서 APP1APP2 는 2 개의 PHP 애플리케이션 컨테이너이며, 이는 동일하거나 다른 버전의 애플리케이션을 실행하여 중복성을 달성 할 수 있습니다. NGINX 컨테이너는 트래픽 및로드 밸런싱을 수신합니다.

Nginx로드 밸런싱 구성

nginx.conf 구성 파일을 nginx 컨테이너에 만들고 마운트하십시오. 구성 예는 다음과 같습니다.

 http {
  상류 백엔드 {
    서버 app1 : 8080;
    서버 app2 : 8080;
  }

  서버 {
    80;

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

이 구성은 두 개의 응용 프로그램 서버 주소를 포함하는 업스트림 명명 된 백엔드를 정의합니다. NGINX가 요청을받은 후에는로드 밸런싱을 달성하기 위해이 두 PHP 응용 프로그램 컨테이너에 트래픽을 할당합니다.

PHP 애플리케이션 컨테이너 이미지를 빌드하십시오

실제 요구에 따라 dockerfile을 작성하십시오. 예제 내용은 다음과 같습니다.

 PHP : 7.4.15-fpm

WorkDir/var/www/html

복사 . .

CHMOD -R 755 스토리지를 실행하십시오

CMD [ "PHP-FPM"]

이 dockerfile은 공식 PHP 이미지를 기반으로하며 작업 디렉토리를 설정하고 응용 프로그램 코드를 복사하며 디렉토리 권한을 구성하고 마지막으로 PHP-FPM 서비스를 시작합니다.

고 가용성 PHP 응용 프로그램을 시작하십시오

구성이 완료되면 다음 명령으로 모든 컨테이너를 시작하십시오.

 Docker -Compose Up -D

이 명령은 백그라운드에서 여러 정의 된 컨테이너를 시작하여 PHP 응용 프로그램을 Nginx를 통해로드 균형을 잡을 수 있도록합니다.

요약

Docker Compose 및 Nginx를 통해 PHP 응용 프로그램을위한 고도로 가용 배포 환경을 성공적으로 구축했습니다. 멀티 컨테이너 아키텍처 및로드 밸런싱 메커니즘은 단일 고장 시점 및 지원 스케일 아웃에서 응용 프로그램을 사용할 수 있도록합니다.

이 기사는보다 복잡한 생산 환경 아키텍처를 구현하기위한 실제 요구에 따라 구성을 추가로 사용자 정의 할 수있는 기본 예제를 제공합니다.