>  기사  >  백엔드 개발  >  Docker Compose, Nginx 및 MariaDB 모범 사례: 배포된 PHP 애플리케이션 모니터링 및 최적화

Docker Compose, Nginx 및 MariaDB 모범 사례: 배포된 PHP 애플리케이션 모니터링 및 최적화

WBOY
WBOY원래의
2023-10-12 14:19:44593검색

Docker Compose、Nginx和MariaDB的最佳实践:部署PHP应用程序的监控与优化

Docker Compose, Nginx 및 MariaDB 모범 사례: 배포된 PHP 애플리케이션의 모니터링 및 최적화

소개:
현대 애플리케이션 개발에서 컨테이너화는 애플리케이션을 효율적으로 관리하고 배포하는 데 도움이 되는 인기 있는 방법이 되었습니다. Docker Compose는 여러 컨테이너를 정의하고 실행하기 위한 도구로, 애플리케이션 배포 및 관리 프로세스를 단순화합니다. 이 기사에서는 Nginx 및 MariaDB와 결합된 Docker Compose를 사용하여 PHP 애플리케이션을 배포 및 최적화하는 방법을 소개하고 특정 코드 예제를 제공합니다.

  1. 준비:
    시작하기 전에 Docker와 Docker Compose가 설치되어 있는지 확인하고 PHP 이미지를 얻으세요.
  2. Docker Compose 파일 생성:
    docker-compose.yml이라는 파일을 생성하고 파일에서 컨테이너 구성을 정의합니다. 예는 다음과 같습니다.
version: '3'
services:
  nginx:
    image: nginx
    ports:
      - "80:80"
    volumes:
      - ./nginx.conf:/etc/nginx/nginx.conf
    depends_on:
      - php
  php:
    image: php:7.4-fpm
    volumes:
      - ./php.ini:/usr/local/etc/php/php.ini
      - ./app:/var/www/html
    depends_on:
      - mariadb
  mariadb:
    image: mariadb
    environment:
      - MYSQL_ROOT_PASSWORD=123456
    volumes:
      - ./data:/var/lib/mysql

이 예에는 nginx, php 및 mariadb의 세 가지 서비스가 정의되어 있습니다. nginx 서비스는 호스트의 포트 80을 수신하고 처리를 위해 요청을 PHP 서비스로 전달합니다. php 서비스는 php:7.4-fpm 이미지를 사용하고 php.ini 및 애플리케이션 파일 디렉터리를 마운트합니다. mariadb 서비스는 mariadb 미러를 사용하여 데이터베이스의 루트 비밀번호를 설정하고 데이터 디렉터리를 마운트합니다.

  1. Nginx 구성:
    이전 단계에서는 Nginx 서비스를 정의하고 nginx.conf라는 구성 파일을 마운트했습니다. 호스트 시스템에서 이 파일을 생성하고 파일에서 구성해야 합니다. 다음은 간단한 nginx.conf 구성 예입니다.
worker_processes auto;
events {
    worker_connections 1024;
}
http {
    # 其他配置项省略
    server {
        listen 80;
        server_name localhost;
        root /var/www/html;
        location / {
            try_files $uri $uri/ /index.php$is_args$args;
        }
        location ~ .php$ {
            fastcgi_pass php:9000;
            fastcgi_index index.php;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            include fastcgi_params;
        }
    }
}

이 예에서는 Nginx 작업자 프로세스 수, 이벤트 연결 수 및 http 서비스를 구성합니다. 서버 블록에서는 포트 80을 수신하고 루트 디렉터리를 설정하며 PHP 스크립트를 처리하는 방법을 정의했습니다. fastcgi_pass 지시어를 PHP 서비스의 컨테이너 주소로 수정하는 데 주의하세요.

  1. MariaDB 구성:
    이전 단계에서는 MariaDB 서비스를 정의하고 루트 비밀번호를 설정했습니다. 애플리케이션에서 데이터베이스에 연결할 때 올바른 주소와 비밀번호를 사용해야 합니다. 다음은 MariaDB에 연결하기 위한 PHP 코드의 예입니다.
<?php
$host = 'mariadb';
$user = 'root';
$password = '123456';
$database = 'mydb';

$conn = new mysqli($host, $user, $password, $database);

if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}

echo "Connected successfully";

$conn->close();
?>

이 예에서는 mariadb를 이전에 정의한 호스트 이름과 루트 비밀번호로 사용했습니다.

  1. 컨테이너 시작:
    위 구성을 완료한 후 다음 명령을 사용하여 컨테이너를 시작할 수 있습니다.
docker-compose up -d

이 명령은 정의된 모든 서비스를 시작하고 백그라운드에서 실행됩니다.

  1. 모니터링 및 최적화:
    Docker Compose를 통해 PHP 애플리케이션을 배포한 후 모니터링 및 최적화도 매우 중요한 부분입니다. 일반적으로 사용되는 모니터링 및 최적화 방법은 다음과 같습니다.
  • docker stats 명령을 사용하여 각 컨테이너의 리소스 사용량을 확인하면 시간이 지나면서 이상 현상과 성능 병목 현상을 발견할 수 있습니다. docker stats命令查看各个容器的资源使用情况,可以及时发现异常和性能瓶颈。
  • 使用docker-compose logs
  • docker-compose 로그 명령을 사용하면 컨테이너의 로그 정보를 보고 오류와 문제를 빠르게 찾을 수 있습니다.
  • Prometheus 및 Grafana와 같은 모니터링 도구를 사용하여 적시에 조치를 취할 수 있도록 애플리케이션 성능 지표를 수집하고 표시합니다.
  • PHP 애플리케이션 최적화를 위해 캐싱 메커니즘 사용, 데이터베이스 쿼리 최적화, PHP 구성 매개변수 조정 등을 고려할 수 있습니다.


결론:

이 기사에서는 Docker Compose, Nginx 및 MariaDB를 사용하여 PHP 애플리케이션을 배포 및 최적화하는 방법을 소개하고 구체적인 코드 예제를 제공합니다. 컨테이너화된 배포를 통해 애플리케이션을 쉽게 관리 및 확장할 수 있으며, 모니터링 및 최적화를 통해 애플리케이션 성능과 안정성을 향상시킬 수 있습니다. 이 기사가 PHP 애플리케이션을 배포할 때 도움이 되기를 바랍니다. 🎜

위 내용은 Docker Compose, Nginx 및 MariaDB 모범 사례: 배포된 PHP 애플리케이션 모니터링 및 최적화의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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