Docker Compose, Nginx 및 MariaDB의 황금 레시피: 고가용성 PHP 애플리케이션 아키텍처
[소개]
오늘날 인터넷 시대에 고가용성은 모든 웹사이트와 애플리케이션에 매우 중요합니다. 이 목표를 달성하려면 안정적이고 확장 가능하며 성능이 뛰어난 아키텍처를 구축해야 합니다. 이 기사에서는 Docker Compose, Nginx 및 MariaDB를 사용하여 고가용성 PHP 애플리케이션 아키텍처를 구축하는 방법을 소개하고 특정 코드 예제를 제공합니다.
[1부: 아키텍처 개요]
우리의 목표는 PHP 애플리케이션이 여러 인스턴스에서 실행되고 로드 밸런싱을 통해 분산되는 가용성이 높은 아키텍처를 구축하는 것입니다. 또한 MariaDB를 데이터베이스 계층으로 사용하고 Nginx를 역방향 프록시 서버로 사용합니다.
[2부: Docker Compose]
Docker Compose를 사용하여 전체 애플리케이션 스택을 정의하고 관리하겠습니다. 이를 통해 간단한 YAML 파일을 사용하여 모든 컨테이너를 정의하고 구성할 수 있습니다. 다음은 PHP 애플리케이션 컨테이너, Nginx 컨테이너 및 MariaDB 컨테이너를 포함하는 Docker Compose 파일의 예입니다.
version: '3' services: app: build: context: . dockerfile: Dockerfile ports: - 8000:80 environment: - DB_HOST=mariadb nginx: image: nginx:latest ports: - 80:80 volumes: - ./nginx.conf:/etc/nginx/nginx.conf:ro mariadb: image: mariadb:latest environment: - MYSQL_ROOT_PASSWORD=secret
[3부: Nginx 구성]
Nginx는 여러 PHP 애플리케이션 인스턴스에 배포할 수 있는 역방향 프록시 서버 역할을 합니다. . 이를 달성하려면 Nginx의 구성 파일을 수정해야 합니다. 다음은 단순화된 Nginx 구성 파일 예입니다.
worker_processes 1; events { worker_connections 1024; } http { upstream php { server app1:80; server app2:80; # 可以根据需要修改添加更多的PHP应用实例 } server { listen 80; location / { proxy_pass http://php; } } }
[파트 4: PHP 애플리케이션]
우리 PHP 애플리케이션은 Slim 프레임워크를 사용하여 HTTP 요청을 처리하는 간단한 예입니다. 다음은 index.php 파일의 예입니다.
<?php require __DIR__ . '/vendor/autoload.php'; $app = new SlimApp(); $app->get('/', function ($request, $response) { $response->getBody()->write("Hello, world!"); return $response; }); $app->run();
[5부: 시작 및 관리]
애플리케이션 스택을 시작하려면 다음 명령을 실행하세요.
docker-compose up -d
이렇게 하면 모든 컨테이너가 시작되어 함께 연결됩니다. PHP 애플리케이션의 인스턴스가 여러 개 있는 경우 Docker Compose는 각 인스턴스에 대해 새 컨테이너를 만듭니다.
애플리케이션을 확장하려면 다음 명령을 실행하기만 하면 됩니다.
docker-compose scale app=3
이렇게 하면 기존 애플리케이션 인스턴스 외에 두 개의 인스턴스가 더 시작됩니다.
[결론]
Docker Compose, Nginx 및 MariaDB를 결합하여 가용성이 높고 확장 가능하며 성능이 뛰어난 PHP 애플리케이션 아키텍처를 구축할 수 있습니다. 이 황금 레시피는 애플리케이션 안정성을 향상시킬 뿐만 아니라 배포 및 관리도 단순화합니다. 이 문서에 제공된 특정 코드 예제가 도움이 되기를 바랍니다. 귀하의 지원서가 번창하길 바랍니다!
위 내용은 Docker Compose, Nginx 및 MariaDB의 황금 레시피: 고가용성 PHP 애플리케이션 아키텍처의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!