최신 웹 애플리케이션 개발에서 고 가용성은 주요 요구 사항 중 하나입니다. Docker Compose 및 Nginx를 사용하면 PHP 응용 프로그램의 고 가용성 배포를 쉽게 달성 할 수있어 고장이 발생할 때 응용 프로그램이 여전히 안정적이고 이용 가능하도록합니다.
Docker는 주요 컨테이너화 플랫폼으로서 독립 컨테이너에서 응용 프로그램과 그 종속성을 캡슐화 할 수 있습니다. Docker Compose는 멀티 컨테이너 응용 프로그램의 정의 및 관리 프로세스를 단순화합니다.
Nginx는 고성능 웹 서버 일뿐 만 아니라 널리 사용되는 리버스 프록시 서버이기도합니다. 요청 된 트래픽을 여러 백엔드 서버에 배포하고로드 밸런싱을 실현하며 전체 시스템의 가용성 및 성능을 향상시킬 수 있습니다.
먼저 여러 응용 프로그램 인스턴스 및 Nginx 컨테이너를 정의하려면 Docker-Compose.yml 파일을 작성해야합니다. 예제 구성은 다음과 같습니다.
버전 : '3' 서비스 : app1: 짓다: 문맥: . dockerfile : dockerfile 다시 시작 : 항상 app2 : 짓다: 문맥: . dockerfile : dockerfile 다시 시작 : 항상 nginx : 이미지 : nginx 포트 : - "80:80" 볼륨 : - ./nginx.conf:/etc/nginx/nginx.conf 다시 시작 : 항상
이 구성에서 APP1 및 APP2 는 2 개의 PHP 애플리케이션 컨테이너이며, 이는 동일하거나 다른 버전의 애플리케이션을 실행하여 중복성을 달성 할 수 있습니다. 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 응용 프로그램 컨테이너에 트래픽을 할당합니다.
실제 요구에 따라 dockerfile을 작성하십시오. 예제 내용은 다음과 같습니다.
PHP : 7.4.15-fpm WorkDir/var/www/html 복사 . . CHMOD -R 755 스토리지를 실행하십시오 CMD [ "PHP-FPM"]
이 dockerfile은 공식 PHP 이미지를 기반으로하며 작업 디렉토리를 설정하고 응용 프로그램 코드를 복사하며 디렉토리 권한을 구성하고 마지막으로 PHP-FPM 서비스를 시작합니다.
구성이 완료되면 다음 명령으로 모든 컨테이너를 시작하십시오.
Docker -Compose Up -D
이 명령은 백그라운드에서 여러 정의 된 컨테이너를 시작하여 PHP 응용 프로그램을 Nginx를 통해로드 균형을 잡을 수 있도록합니다.
Docker Compose 및 Nginx를 통해 PHP 응용 프로그램을위한 고도로 가용 배포 환경을 성공적으로 구축했습니다. 멀티 컨테이너 아키텍처 및로드 밸런싱 메커니즘은 단일 고장 시점 및 지원 스케일 아웃에서 응용 프로그램을 사용할 수 있도록합니다.
이 기사는보다 복잡한 생산 환경 아키텍처를 구현하기위한 실제 요구에 따라 구성을 추가로 사용자 정의 할 수있는 기본 예제를 제공합니다.