Docker Compose, Nginx 및 MariaDB 모범 사례: 배포된 PHP 애플리케이션의 모니터링 및 최적화
소개:
현대 애플리케이션 개발에서 컨테이너화는 애플리케이션을 효율적으로 관리하고 배포하는 데 도움이 되는 인기 있는 방법이 되었습니다. Docker Compose는 여러 컨테이너를 정의하고 실행하기 위한 도구로, 애플리케이션 배포 및 관리 프로세스를 단순화합니다. 이 기사에서는 Nginx 및 MariaDB와 결합된 Docker Compose를 사용하여 PHP 애플리케이션을 배포 및 최적화하는 방법을 소개하고 특정 코드 예제를 제공합니다.
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 미러를 사용하여 데이터베이스의 루트 비밀번호를 설정하고 데이터 디렉터리를 마운트합니다.
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 서비스의 컨테이너 주소로 수정하는 데 주의하세요.
<?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를 이전에 정의한 호스트 이름과 루트 비밀번호로 사용했습니다.
docker-compose up -d
이 명령은 정의된 모든 서비스를 시작하고 백그라운드에서 실행됩니다.
docker stats
명령을 사용하여 각 컨테이너의 리소스 사용량을 확인하면 시간이 지나면서 이상 현상과 성능 병목 현상을 발견할 수 있습니다. docker stats
命令查看各个容器的资源使用情况,可以及时发现异常和性能瓶颈。docker-compose logs
docker-compose 로그
명령을 사용하면 컨테이너의 로그 정보를 보고 오류와 문제를 빠르게 찾을 수 있습니다.
결론:
위 내용은 Docker Compose, Nginx 및 MariaDB 모범 사례: 배포된 PHP 애플리케이션 모니터링 및 최적화의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!