>백엔드 개발 >PHP 튜토리얼 >Docker Compose, Nginx 및 MariaDB를 사용하여 탄력적인 PHP 애플리케이션 아키텍처 구축

Docker Compose, Nginx 및 MariaDB를 사용하여 탄력적인 PHP 애플리케이션 아키텍처 구축

WBOY
WBOY원래의
2023-10-12 10:31:56564검색

使用Docker Compose、Nginx和MariaDB构建弹性的PHP应用程序架构

Docker Compose, Nginx 및 MariaDB를 사용하여 탄력적인 PHP 애플리케이션 아키텍처 구축

클라우드 컴퓨팅 및 컨테이너화 기술의 발전으로 탄력적인 애플리케이션 아키텍처 구축이 더욱 중요해졌습니다. 이 기사에서는 Docker Compose, Nginx 및 MariaDB를 사용하여 탄력적인 PHP 애플리케이션 아키텍처를 구축하는 방법을 소개하고 구체적인 코드 예제를 제공합니다.

  1. Docker 및 Docker Compose 설치
    먼저 로컬 머신에 Docker 및 Docker Compose를 설치해야 합니다. Docker는 컨테이너를 구축하고 관리하는 데 도움이 되는 경량 컨테이너화 플랫폼이고, Docker Compose는 단일 구성 파일을 통해 여러 Docker 컨테이너를 정의하고 실행할 수 있는 도구입니다. 운영 체제 유형에 따른 설치 및 구성에 대해서는 공식 문서를 참조하십시오.
  2. Docker Compose 파일 만들기
    다음으로 애플리케이션 아키텍처를 정의하기 위해 Docker Compose 구성 파일을 만들어야 합니다. 프로젝트의 루트 디렉터리에 docker-compose.yml이라는 파일을 만들고 다음 콘텐츠를 추가합니다.
version: '3'
services:
  web:
    image: nginx:latest
    restart: always
    ports:
      - 80:80
      - 443:443
    volumes:
      - ./nginx.conf:/etc/nginx/nginx.conf
    depends_on:
      - php
  php:
    image: php:latest
    restart: always
    volumes:
      - ./code:/var/www/html
  db:
    image: mariadb:latest
    restart: always
    environment:
      - MYSQL_ROOT_PASSWORD=root
      - MYSQL_DATABASE=app
      - MYSQL_USER=appuser
      - MYSQL_PASSWORD=apppassword

위 구성 파일은 web, php, db의 세 가지 서비스를 정의합니다. 웹 서비스는 최신 Nginx 이미지를 사용하여 포트 80 및 443을 호스트에 매핑합니다. 웹 서비스는 또한 로컬 nginx.conf 파일을 컨테이너에 마운트하여 Nginx 구성을 사용자 정의합니다. PHP 서비스는 최신 PHP 이미지를 사용하고 로컬 코드 디렉터리를 컨테이너에 탑재하여 코드를 공유합니다. db 서비스는 최신 MariaDB 이미지를 사용하며 루트 사용자 및 앱 데이터베이스의 비밀번호가 설정됩니다.

  1. Nginx 구성 파일 생성
    Nginx가 제대로 작동하려면 Nginx 구성 파일을 생성하여 웹 컨테이너에 마운트해야 합니다. 프로젝트의 루트 디렉터리에 nginx.conf라는 파일을 만들고 다음 콘텐츠를 추가합니다.
worker_processes auto;
pid /run/nginx.pid;

events {
    worker_connections 1024;
}

http {
    include /etc/nginx/mime.types;
    default_type application/octet-stream;

    server {
        listen 80;

        location / {
            proxy_pass http://php:80;
            proxy_set_header Host $host;
        }
    }
}

위 구성 파일은 Nginx 작업자 프로세스 수와 Nginx가 수신 대기하는 포트 및 프록시 규칙을 지정합니다. 이 예에서 Nginx는 모든 요청을 PHP 컨테이너의 포트 80으로 프록시합니다.

  1. PHP 애플리케이션 작성
    코드 디렉토리에 PHP 애플리케이션용 코드를 작성하세요. 여기서는 특정 PHP 코드를 표시하지 않습니다. 필요에 따라 PHP 애플리케이션을 작성할 수 있습니다. 중요한 것은 이러한 코드를 코드 디렉토리에 배치하여 PHP 컨테이너와 공유하는 것입니다.
  2. 컨테이너 시작
    프로젝트의 루트 디렉터리에서 터미널을 열고 다음 명령을 실행하여 컨테이너를 시작합니다.
docker-compose up -d

이 명령은 docker-compose.yml 파일의 구성에 따라 모든 컨테이너를 시작하고 관리합니다. . -d 매개변수를 추가하면 컨테이너가 백그라운드에서 실행됩니다.

  1. 액세스 애플리케이션
    이제 http://localhost를 방문하여 브라우저를 통해 PHP 애플리케이션에 액세스할 수 있습니다. Nginx는 요청을 PHP 컨테이너에서 실행되는 PHP 애플리케이션으로 프록시 처리하고 결과를 브라우저에 반환합니다.
  2. 컨테이너 확장
    애플리케이션을 확장해야 하는 경우 Docker Compose에서 매우 쉽게 수행할 수 있습니다. PHP 컨테이너 수를 늘려 더 많은 요청을 처리할 수 있습니다. 아래와 같이 docker-compose.yml 파일에서 PHP 서비스를 수정하고 복제본 수를 하나씩 늘리면 됩니다.
  php:
    image: php:latest
    restart: always
    volumes:
      - ./code:/var/www/html
    scale: 3

위 구성은 각각 동일한 코드와 구성을 가진 3개의 PHP 컨테이너를 생성합니다. 이러한 방식으로 더 많은 요청이 오면 Docker Compose는 요청을 자동으로 다른 PHP 컨테이너에 배포하여 확장을 달성합니다.

요약
이 기사에서는 Docker Compose, Nginx 및 MariaDB를 사용하여 탄력적인 PHP 애플리케이션 아키텍처를 구축하는 방법을 소개합니다. Docker Compose를 사용하면 여러 Docker 컨테이너를 쉽게 정의 및 실행할 수 있고, Nginx를 통해 요청 프록시 및 로드 밸런싱을 구현하고, MariaDB를 통해 애플리케이션 데이터를 저장할 수 있습니다. 또한 PHP 컨테이너 수를 늘려 애플리케이션을 확장하는 방법도 시연했습니다. 이 글이 도움이 되었기를 바라며, 궁금한 점이 있으시면 언제든지 문의해 주시기 바랍니다.

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

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