Maison  >  Article  >  développement back-end  >  Optimiser le déploiement d'applications PHP à l'aide de Nginx et Docker Compose

Optimiser le déploiement d'applications PHP à l'aide de Nginx et Docker Compose

WBOY
WBOYoriginal
2023-10-12 11:01:571547parcourir

使用Nginx和Docker Compose优化PHP应用程序的部署

Optimisez le déploiement d'applications PHP à l'aide de Nginx et Docker Compose

Introduction :
Avec le développement d'Internet et des applications Web, PHP, en tant que langage de programmation largement utilisé, est largement utilisé pour créer divers sites Web et applications. Cependant, les méthodes de déploiement traditionnelles peuvent être confrontées à certains défis, tels qu'une configuration d'environnement lourde, des conflits de versions et des difficultés d'extension de capacité. Dans ce cas, l'utilisation de Nginx et Docker Compose peut grandement simplifier le processus de déploiement d'applications PHP, améliorer la productivité des développeurs et la stabilité des applications.

1. Avantages et configuration de base de Nginx

Nginx est un serveur Web open source hautes performances et un serveur proxy inverse. Par rapport au serveur Apache traditionnel, Nginx a une consommation de mémoire inférieure, des capacités de traitement simultané plus élevées et de meilleures performances. Voici quelques avantages de Nginx :

  1. Hautes performances : Nginx adopte une architecture asynchrone non bloquante basée sur les événements, qui peut gérer un grand nombre de connexions simultanées en même temps sous une configuration matérielle inférieure, offrant un temps de réponse plus rapide.
  2. Proxy inverse : Nginx peut être utilisé comme serveur proxy inverse pour distribuer les requêtes des clients à plusieurs serveurs d'applications internes afin d'améliorer l'équilibrage de charge et les performances globales.
  3. Haute fiabilité : Nginx dispose d'un mode de fonctionnement stable et fiable et d'un mécanisme de récupération automatique en cas de panne, qui peuvent garantir la disponibilité continue des applications.

Lors de la configuration de base de Nginx, vous pouvez créer un simple fichier nginx.conf et le configurer en conséquence, comme indiqué ci-dessous :

worker_processes  auto;
events {
    worker_connections  1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    server {
        listen       80;
        server_name  localhost;
        location / {
            root   /usr/share/nginx/html;
            index  index.php;
        }
        location ~ .php$ {
            root           /usr/share/nginx/html;
            fastcgi_pass   PHP_CONTAINER:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            include        fastcgi_params;
        }
    }
}

Dans le fichier de configuration ci-dessus, il est configuré pour écouter le port 80 et spécifier le site Web. via root. Le répertoire racine et le nom du serveur sont localhost. Lorsqu'une requête se termine par .php, la requête est transmise à un conteneur PHP nommé PHP_CONTAINER et le nom de fichier demandé est transmis au conteneur PHP pour traitement.

2. Utilisation et exemples de Docker Compose

Docker Compose est un outil qui simplifie le déploiement d'applications conteneurisées et peut définir et gérer des applications dans plusieurs conteneurs. Docker Compose utilise un fichier YAML pour configurer les relations et les paramètres entre les conteneurs et fournit des commandes simples pour gérer ces conteneurs. Voici un exemple de fichier docker-compose.yml :

version: '3'
services:
  web:
    build: .
    ports:
      - 80:80
    volumes:
      - .:/usr/share/nginx/html
    depends_on:
      - php

  php:
    build:
      context: .
      dockerfile: Dockerfile-php
    volumes:
      - .:/var/www/html

  db:
    image: mysql:5.7
    ports:
      - 3306:3306
    environment:
      MYSQL_ROOT_PASSWORD: password
      MYSQL_DATABASE: mydatabase

Dans l'exemple ci-dessus, nous avons défini 3 services : web, php et db. Le service Web utilise Dockerfile pour créer le conteneur Nginx, mappe le répertoire actuel de l'hôte au répertoire /usr/share/nginx/html du conteneur et mappe le port 80 du conteneur au port 80 de l'hôte. Le service php utilise Dockerfile-php pour créer un conteneur PHP et mappe le répertoire actuel de l'hôte au répertoire /var/www/html du conteneur. Le service db utilise l'image mysql:5.7 pour créer le conteneur MySQL et mappe le port 3306 du conteneur au port 3306 de l'hôte.

3. Intégrer les applications Nginx et PHP dans Docker Compose

Ensuite, nous devons créer le Dockerfile correspondant pour créer des conteneurs Nginx et PHP. Voici un exemple de Dockerfile :

# 构建Nginx容器
FROM nginx:latest

# 将宿主机的配置文件复制到容器中
COPY nginx.conf /etc/nginx/conf.d/default.conf

# 定义容器启动时执行的命令
CMD ["nginx", "-g", "daemon off;"]

# 构建PHP容器
FROM php:7.4-fpm

# 安装PHP扩展和依赖库
RUN docker-php-ext-install pdo_mysql

# 定义容器启动时执行的命令
CMD ["php-fpm"]

Dans l'exemple Dockerfile ci-dessus, nous construisons d'abord le conteneur Nginx à l'aide de l'image nginx:latest, copions le fichier de configuration de l'hôte dans le conteneur, puis utilisons l'image php:7.4-fpm pour construire Conteneur PHP et installé l'extension pdo_mysql et quelques autres bibliothèques dépendantes.

4. Utilisez Docker Compose pour déployer des applications PHP

Après avoir terminé la configuration et la définition ci-dessus, nous pouvons utiliser Docker Compose pour déployer des applications PHP. Tout d’abord, créez un fichier docker-compose.yml dans le répertoire racine de l’application et copiez-y le contenu de l’exemple ci-dessus. Ensuite, exécutez les commandes suivantes sur la ligne de commande pour créer et démarrer le conteneur :

docker-compose build
docker-compose up -d

Ces commandes construiront l'image requise et démarreront le conteneur. En accédant à http://localhost, vous pouvez accéder à l'application PHP déployée.

Résumé :
L'utilisation de Nginx et Docker Compose pour optimiser le déploiement d'applications PHP peut grandement simplifier le processus de déploiement, améliorer la productivité des développeurs et la stabilité des applications. Nginx présente de nombreux avantages en tant que serveur Web hautes performances et serveur proxy inverse, et Docker Compose, en tant qu'outil de déploiement d'applications conteneurisées, peut gérer plus facilement plusieurs conteneurs. Déployer des applications PHP de cette manière rend le processus de développement plus efficace et facilite l'extension et la maintenance de l'application.

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
Article précédent:Workflow Git encapsulé en PHPArticle suivant:Workflow Git encapsulé en PHP