Rumah >pembangunan bahagian belakang >tutorial php >Resipi Emas Docker Compose, Nginx dan MariaDB: Seni Bina Aplikasi PHP Sangat Tersedia

Resipi Emas Docker Compose, Nginx dan MariaDB: Seni Bina Aplikasi PHP Sangat Tersedia

PHPz
PHPzasal
2023-10-12 09:25:58896semak imbas

Docker Compose、Nginx和MariaDB的黄金配方:高可用PHP应用程序架构

Resipi Emas Docker Compose, Nginx dan MariaDB: Seni Bina Aplikasi PHP Sangat Tersedia

[Pengenalan]#🎜’🎜#Dalam Hari Ini Dalam era Internet, ketersediaan yang tinggi adalah penting untuk setiap tapak web dan aplikasi. Untuk mencapai matlamat ini, kita perlu membina seni bina yang stabil, berskala dan berprestasi. Artikel ini akan memperkenalkan cara menggunakan Docker Compose, Nginx dan MariaDB untuk membina seni bina aplikasi PHP yang sangat tersedia dan menyediakan contoh kod khusus.

[Bahagian Pertama: Gambaran Keseluruhan Seni Bina]

Matlamat kami adalah untuk membina seni bina yang sangat tersedia di mana aplikasi PHP akan dijalankan dalam beberapa keadaan dan diedarkan melalui pengimbangan beban. Selain itu, kami akan menggunakan MariaDB sebagai lapisan pangkalan data kami dan Nginx sebagai pelayan proksi terbalik.

[Bahagian 2: Docker Compose]

Kami akan menggunakan Docker Compose untuk mentakrif dan mengurus keseluruhan timbunan aplikasi kami. Ia membolehkan kami mentakrif dan mengkonfigurasi semua bekas menggunakan fail YAML yang mudah. Berikut ialah contoh fail Docker Compose yang mengandungi bekas aplikasi PHP, bekas Nginx dan bekas MariaDB: Pelayan, yang boleh diedarkan kepada berbilang contoh aplikasi PHP melalui pengimbangan beban. Kami perlu mengubah suai fail konfigurasi Nginx untuk mencapai ini. Berikut ialah contoh fail konfigurasi Nginx yang dipermudahkan:

version: '3'
services:
  app:
    build:
      context: .
      dockerfile: Dockerfile
    ports:
      - 8000:80
    environment:
      - DB_HOST=mariadb
  nginx:
    image: nginx:latest
    ports:
      - 80:80
    volumes:
      - ./nginx.conf:/etc/nginx/nginx.conf:ro
  mariadb:
    image: mariadb:latest
    environment:
      - MYSQL_ROOT_PASSWORD=secret

[Bahagian 4: Aplikasi PHP]

Aplikasi PHP kami ialah contoh mudah yang menggunakan rangka kerja Slim untuk mengendalikan permintaan HTTP . Berikut ialah contoh fail index.php:

worker_processes  1;
events {
    worker_connections  1024;
}
http {
    upstream php {
        server app1:80;
        server app2:80;
        # 可以根据需要修改添加更多的PHP应用实例
    }
    server {
        listen 80;
        location / {
            proxy_pass http://php;
        }
    }
}

[Bahagian 5: Permulaan dan Pengurusan]

Untuk memulakan timbunan aplikasi kami, jalankan sahaja arahan berikut:

<?php
require __DIR__ . '/vendor/autoload.php';

$app = new SlimApp();

$app->get('/', function ($request, $response) {
    $response->getBody()->write("Hello, world!");
    return $response;
});

$app->run();
#🎜🎜 #Ini akan memulakan semua bekas dan menyambungkannya bersama. Jika anda mempunyai berbilang tika aplikasi PHP anda, Docker Compose akan mencipta bekas baharu untuk setiap tika.

Untuk menskalakan aplikasi anda, cuma jalankan arahan berikut:

docker-compose up -d

Ini akan melancarkan dua lagi kejadian sebagai tambahan kepada tika aplikasi sedia ada.

[Kesimpulan]

Dengan menggabungkan Docker Compose, Nginx dan MariaDB, kami boleh membina seni bina aplikasi PHP yang tersedia, berskala dan berprestasi tinggi. Resipi emas ini bukan sahaja meningkatkan kebolehpercayaan aplikasi, tetapi juga memudahkan penggunaan dan pengurusan. Saya harap anda mendapati contoh kod khusus yang disediakan dalam artikel ini membantu. Semoga permohonan anda berjaya!

Atas ialah kandungan terperinci Resipi Emas Docker Compose, Nginx dan MariaDB: Seni Bina Aplikasi PHP Sangat Tersedia. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn