Maison >développement back-end >tutoriel php >Meilleures pratiques pour Docker Compose, Nginx et MariaDB : surveillance et optimisation des applications PHP déployées
Meilleures pratiques pour Docker Compose, Nginx et MariaDB : surveillance et optimisation des applications PHP déployées
Introduction :
Dans le développement d'applications modernes, la conteneurisation est devenue un moyen populaire pour nous aider à mieux gérer et déployer des applications efficacement. Docker Compose est un outil permettant de définir et d'exécuter plusieurs conteneurs, ce qui simplifie le processus de déploiement et de gestion des applications. Cet article expliquera comment utiliser Docker Compose combiné avec Nginx et MariaDB pour déployer et optimiser des applications PHP, et donnera des exemples de code spécifiques.
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
Dans cet exemple, nous avons trois services définis : nginx, php et mariadb. Le service nginx écoutera le port 80 de l'hôte et transmettra la demande au service php pour traitement. Le service php utilise l'image php:7.4-fpm et monte les répertoires php.ini et des fichiers d'application. Le service mariadb utilise le miroir mariadb, définit le mot de passe root de la base de données et monte le répertoire de données.
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; } } }
Dans cet exemple, nous configurons le nombre de processus de travail Nginx, le nombre de connexions d'événements et le service http. Dans le bloc serveur, nous avons défini la méthode d'écoute du port 80, de définition du répertoire racine et de traitement des scripts PHP. Faites attention à modifier la directive fastcgi_pass en l'adresse du conteneur du service 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(); ?>
Dans cet exemple, nous avons utilisé mariadb comme nom d'hôte et mot de passe root définis précédemment.
docker-compose up -d
Cette commande démarrera tous les services définis et s'exécutera en arrière-plan.
docker stats
pour vérifier l'utilisation des ressources de chaque conteneur, et vous pourrez détecter les anomalies et les goulots d'étranglement des performances à temps. docker stats
命令查看各个容器的资源使用情况,可以及时发现异常和性能瓶颈。docker-compose logs
docker-compose logs
pour afficher les informations de journal du conteneur afin de localiser rapidement les erreurs et les problèmes.
Conclusion :
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!