>  기사  >  백엔드 개발  >  Docker Compose, Nginx 및 MariaDB를 사용하여 탄력적이고 확장 가능한 PHP 애플리케이션 클러스터 구축

Docker Compose, Nginx 및 MariaDB를 사용하여 탄력적이고 확장 가능한 PHP 애플리케이션 클러스터 구축

WBOY
WBOY원래의
2023-10-12 13:03:111140검색

使用Docker Compose、Nginx和MariaDB构建弹性可扩展的PHP应用程序集群

Docker Compose, Nginx 및 MariaDB를 사용하여 탄력적이고 확장 가능한 PHP 애플리케이션 클러스터 구축

소개:
인터넷 기술의 급속한 발전으로 인해 점점 더 많은 애플리케이션이 늘어나는 사용자 요구 사항을 충족하기 위해 탄력적이고 확장 가능한 기능을 갖추어야 합니다. . 기존 서버 아키텍처에서는 탄력적인 확장을 달성하려면 복잡한 구성과 조정이 필요한 경우가 많으므로 빠르게 변화하는 요구 사항을 충족하기가 어렵습니다. Docker Compose, Nginx 및 MariaDB를 사용하면 높은 동시성 및 대규모 트래픽 요구 사항을 충족하는 탄력적이고 확장 가능한 PHP 애플리케이션 클러스터를 쉽게 구축할 수 있습니다.

1. Docker Compose 소개
Docker Compose는 여러 Docker 컨테이너를 정의하고 실행하기 위해 Docker에서 공식적으로 제공하는 도구입니다. 구성 파일을 통해 여러 컨테이너의 종속성 및 구성 정보를 정의하고 Docker Compose 명령을 사용하여 전체 클러스터를 빠르게 배포 및 관리할 수 있습니다.

2. Nginx 소개
Nginx는 다수의 동시 연결 및 고부하 요청을 처리할 수 있는 고성능 웹 서버이자 역방향 프록시 서버입니다. Nginx는 가볍고 안정성이 뛰어나며 리소스 소비가 적은 것이 특징이며 PHP 애플리케이션 클러스터의 프런트엔드 항목으로 매우 적합합니다.

3. MariaDB 소개
MariaDB는 웹 애플리케이션에서 널리 사용되는 관계형 데이터베이스 관리 시스템입니다. 이는 MySQL의 모든 기능을 유지하고 몇 가지 새로운 기능과 성능 최적화를 추가하는 MySQL의 포크입니다. MariaDB는 빠른 속도, 우수한 안정성, 강력한 확장성을 특징으로 하여 PHP 애플리케이션 클러스터용 백엔드 데이터베이스로 매우 적합합니다.

4. Docker Compose 구성 파일 만들기
먼저 docker-compose.yml이라는 Docker Compose 구성 파일을 만들어야 합니다. 이 파일에서는 서비스 세트를 정의하고 이들 간의 종속성, 컨테이너 이미지 및 포트 매핑을 지정해야 합니다. 다음은 예제 구성 파일의 내용입니다.

version: "3"

services:
  nginx:
    image: nginx:latest
    ports:
      - "80:80"
    volumes:
      - ./nginx.conf:/etc/nginx/nginx.conf
    depends_on:
      - php

  php:
    image: php:latest
    volumes:
      - ./php:/var/www/html

  mariadb:
    image: mariadb:latest
    ports:
      - "3306:3306"
    environment:
      - MYSQL_ROOT_PASSWORD=secret

위 구성 파일에서는 nginx, php 및 mariadb의 세 가지 서비스를 정의합니다. 그 중 nginx 서비스는 공식적으로 제공되는 Nginx 이미지를 사용하고 호스트의 80 포트를 컨테이너의 포트 80에 매핑합니다. php 서비스는 공식적으로 제공되는 PHP 이미지를 사용하고 호스트의 ./php 디렉터리를 컨테이너의 /var/www/html에 매핑합니다. mariadb 서비스는 공식적으로 제공되는 MariaDB 이미지를 사용하고 호스트의 3306 포트를 컨테이너의 3306 포트에 매핑합니다. 또한 nginx 컨테이너가 시작되기 전에 php 컨테이너가 시작되도록 하기 위해 dependency_on 키워드를 통해 컨테이너 간의 종속성을 지정합니다.

5. Nginx 구성 파일 작성
다음으로 웹 서버의 동작과 규칙을 지정하는 Nginx 구성 파일을 작성해야 합니다. 이 파일에서는 가상 호스트, 역방향 프록시, 로드 밸런싱 및 기타 기능을 정의할 수 있습니다. 다음은 예제 구성 파일의 내용입니다.

server {
  listen 80;
  server_name example.com;

  location / {
    proxy_pass http://php;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  }
}

위 구성 파일에서는 포트 80에서 수신 대기하고 모든 요청을 PHP 서비스로 전달하는 가상 호스트를 정의합니다. Proxy_pass 지시문을 통해 Docker Compose에서 정의한 서비스 이름인 php라는 서비스로 요청을 전달합니다.

6. 애플리케이션 클러스터 구축 및 시작
위 구성을 완료한 후 Docker Compose 명령을 사용하여 전체 애플리케이션 클러스터를 구축하고 시작할 수 있습니다. 터미널에서 다음 명령을 실행합니다.

$ docker-compose up -d

이 명령은 docker-compose.yml 파일의 구성 정보를 기반으로 정의된 모든 컨테이너를 생성하고 시작합니다. -d 매개변수는 백그라운드 모드에서 실행 중임을 의미합니다. 즉, 로그가 터미널에 실시간으로 표시되지 않습니다. 실행이 완료되면 http://localhost에 접속하여 애플리케이션에 접근할 수 있습니다.

7. 애플리케이션 클러스터 확장
더 높은 동시성 요구 사항을 충족하기 위해 애플리케이션 클러스터를 확장해야 하는 경우 Docker Compose 구성 파일에 새 PHP 서비스만 추가하면 됩니다. 예를 들어 docker-compose.yml 파일에 다음 콘텐츠를 추가할 수 있습니다.

  php2:
    image: php:latest
    volumes:
      - ./php:/var/www/html

그런 다음 docker-compose up -d 명령을 사용하여 전체 클러스터를 다시 빌드하고 시작합니다. 이러한 방식으로 우리는 애플리케이션 클러스터를 성공적으로 확장하고 탄력적인 확장 요구 사항을 달성했습니다.

요약:
Docker Compose, Nginx 및 MariaDB를 사용하면 탄력적이고 확장 가능한 PHP 애플리케이션 클러스터를 쉽게 구축할 수 있습니다. Docker Compose는 클러스터를 빠르게 배포하고 관리하는 기능을 제공하고, 프런트엔드 포털인 Nginx는 높은 동시성 및 대규모 트래픽 요청을 처리할 수 있으며, 백엔드 데이터베이스인 MariaDB는 안정성과 확장성을 제공합니다. 실제 응용 분야에서는 변화하는 비즈니스 요구 사항을 충족하기 위해 특정 요구 사항에 따라 유연하게 구성하고 조정할 수 있습니다.

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

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