>백엔드 개발 >PHP 튜토리얼 >Docker Compose, Nginx 및 MariaDB의 황금 레시피: 고가용성 PHP 애플리케이션 아키텍처

Docker Compose, Nginx 및 MariaDB의 황금 레시피: 고가용성 PHP 애플리케이션 아키텍처

PHPz
PHPz원래의
2023-10-12 09:25:58893검색

Docker Compose、Nginx和MariaDB的黄金配方:高可用PHP应用程序架构

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.