>  기사  >  백엔드 개발  >  Docker Compose, Nginx 및 MariaDB를 사용하여 확장 가능한 PHP 애플리케이션 아키텍처 구축

Docker Compose, Nginx 및 MariaDB를 사용하여 확장 가능한 PHP 애플리케이션 아키텍처 구축

王林
王林원래의
2023-10-12 11:15:411273검색

使用Docker Compose、Nginx和MariaDB构建可伸缩的PHP应用程序架构

Docker Compose, Nginx 및 MariaDB를 사용하여 확장 가능한 PHP 애플리케이션 아키텍처 구축

소개:
클라우드 컴퓨팅 및 가상화 기술의 발전으로 컨테이너를 사용하여 애플리케이션을 구축하고 관리하는 것이 오늘날 주류 솔루션이 되었습니다. 기존 애플리케이션 배포에서는 애플리케이션 환경을 구성하고 관리하는 작업이 지루하고 오류가 발생하기 쉬운 경우가 많습니다. 컨테이너화 기술을 사용하면 애플리케이션과 애플리케이션이 의존하는 환경을 패키지화할 수 있으므로 애플리케이션 배포 및 관리 프로세스가 단순화됩니다.

이 기사에서는 Docker Compose, Nginx 및 MariaDB의 세 가지 도구를 사용하여 확장 가능한 PHP 애플리케이션 아키텍처를 구축하는 방법을 소개하고 구체적인 코드 예제를 제공합니다. 이 기사의 소개를 통해 독자들이 이러한 도구를 사용하여 안정적이고 확장 가능한 애플리케이션 환경을 구축하는 방법을 이해할 수 있기를 바랍니다.

1. Docker Compose의 기본 개념
Docker Compose는 다중 컨테이너 Docker 애플리케이션을 정의하고 관리하는 도구입니다. 별도의 yaml 파일을 통해 컨테이너 이미지, 환경 변수, 네트워크 구성 등을 포함한 애플리케이션의 다양한 구성 요소를 정의할 수 있습니다.

다음은 기본 Docker Compose 파일의 예입니다.

version: '3'
services:
  web:
    image: nginx:latest
    ports:
      - "80:80"
    volumes:
      - ./app:/usr/share/nginx/html
    links:
      - php
  php:
    image: php:fpm
    volumes:
      - ./app:/var/www/html
  db:
    image: mariadb:latest
    environment:
      - MYSQL_ROOT_PASSWORD=root
      - MYSQL_DATABASE=myapp
      - MYSQL_USER=myuser
      - MYSQL_PASSWORD=mypassword

위 예에서는 web, php 및 db의 세 가지 서비스를 정의했습니다. 웹 서비스는 최신 Nginx 이미지를 사용하고 컨테이너 포트 80을 노출하여 외부 포트 80을 컨테이너의 포트 80에 매핑합니다. 동시에 ./app 디렉터리를 컨테이너의 /usr/share/nginx/html 디렉터리에 마운트하여 호스트의 파일과 컨테이너의 파일을 동기화할 수 있도록 했습니다. php 서비스는 공식 PHP-FPM 이미지를 사용하고 ./app 디렉토리를 컨테이너의 /var/www/html 디렉토리에 마운트합니다. db 서비스는 최신 MariaDB 이미지를 사용하고 일부 환경 변수를 설정하여 데이터베이스를 구성합니다.

2. Nginx와 PHP의 통합
Docker 기반 애플리케이션 아키텍처에서 Nginx는 일반적으로 역방향 프록시 서버로 사용되어 정적 파일에 대한 요청을 Nginx 서버에 전달하고 동적 요청을 처리를 위해 PHP-FPM 서버에 전달합니다. 다음은 Nginx 구성 예입니다.

server {
    listen 80;
    server_name example.com;

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    location ~ .php$ {
        fastcgi_pass php:9000;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
}

위 예에서는 먼저 서버 블록을 정의하고 포트 80을 수신하고 server_name을 설정했습니다. 다음으로 위치 지시문을 사용하여 요청 전달 규칙을 구성합니다. 요청된 URI가 .php로 끝나면 요청은 php 서비스의 포트 9000으로 전달되고, 요청된 파일 이름은 SCRIPT_FILENAME 매개변수로 PHP-FPM 서버에 전달됩니다.

3. MariaDB 구성
확장 가능한 애플리케이션 아키텍처를 구축할 때 데이터베이스의 확장성도 매우 중요합니다. Docker 아키텍처에서는 MariaDB 이미지를 사용하여 데이터베이스 인스턴스를 빠르게 배포하고 구성할 수 있습니다.

위의 Docker Compose 파일 예에서는 최신 MariaDB 이미지를 사용하고 일부 환경 변수를 설정하여 데이터베이스를 구성했습니다. 이러한 환경 변수를 통해 루트 비밀번호, 데이터베이스 이름, 사용자 이름 및 데이터베이스 비밀번호를 설정할 수 있습니다.

4. Docker Compose를 사용하여 애플리케이션 구축 및 관리
위 구성 파일을 사용하면 Docker Compose 명령을 사용하여 애플리케이션을 구축하고 관리할 수 있습니다. 다음은 일반적으로 사용되는 Docker Compose 명령입니다.

  • 애플리케이션 시작:

    docker-compose up -d
  • 애플리케이션 닫기:

    docker-compose down
  • 애플리케이션 로그 보기:

    docker-compose logs
  • 애플리케이션 상태 보기:

    docker-compose ps

이러한 명령을 통해 애플리케이션을 쉽게 구축, 시작 및 관리할 수 있습니다.

5. 요약
이 기사에서는 Docker Compose, Nginx 및 MariaDB를 사용하여 확장 가능한 PHP 애플리케이션 아키텍처를 구축하는 방법을 소개하고 구체적인 코드 예제를 제공합니다. 이러한 도구를 사용하면 애플리케이션 배포 및 관리 프로세스를 단순화하고 애플리케이션 확장성을 달성할 수 있습니다.

본 글에 제공된 예시는 데모용으로만 제공되며 실제 제작 환경과 약간 다를 수 있다는 점에 유의하시기 바랍니다. 실제 배포 과정에서는 실제 조건에 따라 조정 및 최적화가 이루어져야 합니다.

이 기사의 소개를 통해 독자들이 Docker Compose, Nginx 및 MariaDB를 사용하여 확장 가능한 PHP 애플리케이션 아키텍처를 구축하는 방법에 대한 기본 이해를 갖고 이러한 기술을 실제로 적용하여 자신의 애플리케이션을 구축할 수 있기를 바랍니다.

위 내용은 Docker Compose, Nginx 및 MariaDB를 사용하여 확장 가능한 PHP 애플리케이션 아키텍처 구축의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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