Maison  >  Article  >  développement back-end  >  Optimisez la planification de la capacité pour les applications PHP à l'aide de Docker Compose, Nginx et MariaDB

Optimisez la planification de la capacité pour les applications PHP à l'aide de Docker Compose, Nginx et MariaDB

WBOY
WBOYoriginal
2023-10-12 10:25:54983parcourir

使用Docker Compose、Nginx和MariaDB优化PHP应用程序的容量规划

Utilisez Docker Compose, Nginx et MariaDB pour optimiser la planification de la capacité des applications PHP

Avec le développement continu d'Internet, de plus en plus d'applications adoptent PHP comme langage de développement. Cependant, les applications PHP rencontrent souvent des goulots d'étranglement en termes de performances en cas de concurrence élevée et de volumes de données importants. Afin d'améliorer les performances et la capacité des applications PHP, Docker Compose, Nginx et MariaDB peuvent être utilisés ensemble pour la planification et l'optimisation de la capacité.

Docker Compose est un outil pour Docker qui peut être utilisé pour définir et gérer des applications multi-conteneurs. En utilisant Docker Compose, plusieurs conteneurs peuvent être définis et déployés dans un seul fichier, notamment PHP, Nginx, MariaDB, etc. De cette façon, vous pouvez mettre en place rapidement et facilement un environnement de développement et d’exploitation pour les applications PHP.

Nginx est un serveur HTTP hautes performances qui fait également office de serveur proxy inverse. En utilisant Nginx comme serveur frontal des applications PHP, vous pouvez réaliser l'équilibrage de charge, la mise en cache des ressources statiques, la prise en charge HTTPS et d'autres fonctions, améliorant ainsi les performances et la capacité des applications PHP.

MariaDB est un système de gestion de bases de données relationnelles open source et une branche de MySQL. En utilisant MariaDB, vous pouvez gérer les tâches liées aux bases de données pour les applications PHP, telles que le stockage, la lecture et la mise à jour des données. MariaDB présente les caractéristiques de hautes performances, de haute fiabilité et d'évolutivité, et joue un rôle important dans la planification de la capacité et l'optimisation des applications PHP.

Ce qui suit prendra une application PHP simple comme exemple pour montrer les étapes spécifiques et des exemples de code d'utilisation de Docker Compose, Nginx et MariaDB pour la planification et l'optimisation des capacités.

Tout d'abord, créez un fichier nommé docker-compose.yml pour définir et gérer la configuration et le déploiement des conteneurs PHP, Nginx et MariaDB. Voici le contenu d'un exemple de fichier docker-compose.yml :

version: '3'
services:
  web:
    build: .
    restart: always
    ports:
      - 80:80
    volumes:
      - ./app:/var/www/html
  db:
    image: mariadb
    restart: always
    environment:
      - MYSQL_ROOT_PASSWORD=example
      - MYSQL_DATABASE=example
      - MYSQL_USER=example
      - MYSQL_PASSWORD=example

Dans l'exemple ci-dessus, un service nommé web est défini pour un conteneur qui exécute une application PHP. Le champ build spécifie le Dockerfile utilisé pour créer le conteneur, le champ restart spécifie la stratégie de redémarrage du conteneur, le champ ports spécifie la relation de mappage de port entre le conteneur et l'hôte et le champ volumes spécifie la relation de mappage de répertoire entre le conteneur. et l'hôte.

Ensuite, créez un fichier appelé Dockerfile qui définit la configuration et les dépendances pour construire le conteneur d'application PHP. Voici un exemple de contenu de fichier Dockerfile :

FROM php:7.4-apache
COPY src/ /var/www/html/

Dans l'exemple ci-dessus, une image de base php:7.4-apache est utilisée comme environnement de base pour créer des conteneurs d'application PHP, et l'instruction COPY est utilisée pour copier l'application PHP dans le répertoire src local Le fichier est copié dans le répertoire /var/www/html du conteneur.

Ensuite, créez un fichier nommé default.conf qui définit la configuration du conteneur Nginx. Voici le contenu d'un exemple de fichier default.conf :

server {
    listen 80;
    server_name localhost;
    root /var/www/html;

    location / {
        try_files $uri $uri/ /index.php?$args;
    }

    location ~ .php$ {
        try_files $uri =404;
        fastcgi_pass web:9000;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param PHP_VALUE "error_log=/var/log/nginx/php_errors.log";
        include fastcgi_params;
    }

    location ~ /.ht {
        deny all;
    }
}

Dans l'exemple ci-dessus, un bloc serveur nommé server est défini, spécifiant le port, le nom de domaine, le répertoire racine et les règles de traitement des requêtes par Nginx. Parmi eux, le bloc location / est utilisé pour gérer les ressources statiques et les requêtes PHP, et le bloc location ~ .php$ est utilisé pour gérer l'exécution de scripts PHP.

Enfin, vous pouvez démarrer et gérer le fonctionnement des conteneurs PHP, Nginx et MariaDB en basculant vers le répertoire où se trouve le fichier docker-compose.yml sur la ligne de commande et en exécutant les commandes suivantes :

docker-compose up -d

Avec les étapes ci-dessus et des exemples de code, vous pouvez créer rapidement et facilement un environnement de planification et d'optimisation de capacité pour les applications PHP optimisées à l'aide de Docker Compose, Nginx et MariaDB. De cette façon, les performances et la capacité des applications PHP seront considérablement améliorées et pourront mieux faire face aux exigences de concurrence élevée et de gros volumes de données.

En résumé, en combinant Docker Compose, Nginx et MariaDB pour la planification et l'optimisation des capacités, les performances et la capacité des applications PHP peuvent être efficacement améliorées. Dans les applications réelles, des ajustements de configuration et des optimisations peuvent être effectués en fonction de besoins spécifiques et de conditions réelles pour améliorer encore les performances et la capacité des applications PHP.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn