Jadual Kandungan
Bahagian Pertama: Persediaan Persekitaran
Rumah pembangunan bahagian belakang tutorial php Bina kelompok aplikasi PHP berskala menggunakan Docker Compose, Nginx dan MariaDB

Bina kelompok aplikasi PHP berskala menggunakan Docker Compose, Nginx dan MariaDB

Oct 12, 2023 pm 01:39 PM
docker nginx mariadb

使用Docker Compose、Nginx和MariaDB构建可伸缩的PHP应用程序集群

Bina kluster aplikasi PHP berskala menggunakan Docker Compose, Nginx dan MariaDB

Petikan:
Dalam pembangunan aplikasi moden, membina kelompok aplikasi berskala adalah penting. Dengan menggunakan Docker Compose, Nginx dan MariaDB, kami boleh membina kluster aplikasi PHP berskala dengan mudah yang menyediakan ketersediaan dan fleksibiliti tinggi kepada aplikasi kami. Dalam artikel ini, kami akan meneroka cara menggunakan alatan ini untuk membina gugusan aplikasi PHP yang mudah tetapi berkuasa dan menyediakan contoh kod konkrit.

Bahagian Pertama: Persediaan Persekitaran

Sebelum kita mula, kita perlu memastikan bahawa Docker dan Docker Compose telah dipasang. Buka terminal dalam persekitaran pembangunan anda dan jalankan arahan berikut untuk menyemak sama ada ia dipasang dengan betul:

$ docker --version
$ docker-compose --version
Salin selepas log masuk

Jika maklumat versi yang sepadan dikembalikan, Docker dan Docker Compose telah berjaya dipasang. Seterusnya, kami akan mencipta direktori projek baharu dan mencipta fail docker-compose.yml di dalamnya.

$ mkdir my-php-cluster
$ cd my-php-cluster
$ touch docker-compose.yml
Salin selepas log masuk

Bahagian Kedua: Menulis Fail Karang Docker
Seterusnya, kami akan mentakrifkan konfigurasi kelompok aplikasi kami dalam fail docker-compose.yml. Konfigurasi ini akan termasuk definisi perkhidmatan untuk PHP, Nginx dan MariaDB. Berikut ialah contoh fail asas docker-compose.yml:

version: '3'

services:
  php:
    build:
      context: .
      dockerfile: Dockerfile.php
    restart: always
    ports:
      - "8000:80"
  nginx:
    build:
      context: .
      dockerfile: Dockerfile.nginx
    restart: always
    ports:
      - "80:80"
    depends_on:
      - php
  db:
    image: mariadb
    command: --default-authentication-plugin=mysql_native_password
    restart: always
    ports:
      - "3306:3306"
    environment:
      MYSQL_ROOT_PASSWORD: secret
Salin selepas log masuk

Dalam contoh ini, kami mempunyai tiga perkhidmatan yang ditakrifkan: php, nginx dan db. Perkhidmatan php akan membina imej Docker yang mengandungi PHP dan memetakan port ke port 8000 hos. Perkhidmatan nginx akan membina imej Docker yang mengandungi Nginx dan memetakan port ke port 80 hos. Perkhidmatan db akan menggunakan imej Docker yang disediakan secara rasmi oleh MariaDB dan memetakan port ke port 3306 hos. Akhir sekali, kami juga menentukan pembolehubah persekitaran perkhidmatan db, yang digunakan untuk menetapkan kata laluan akar.

Bahagian 3: Menulis Fail Docker
Untuk imej kita berjaya dibina, kita juga perlu menulis Fail Docker.

Mula-mula, kami mencipta fail bernama Dockerfile.php dan menyalin kandungan berikut ke dalam fail:

FROM php:7.4-fpm

WORKDIR /var/www/html

RUN apt-get update && apt-get install -y 
    libzip-dev 
    zip 
    unzip 
    && docker-php-ext-install zip

COPY . .

RUN composer install --no-dev
Salin selepas log masuk

Dockerfile ini menggunakan imej PHP 7.4 FPM rasmi sebagai imej asas dan memasang beberapa tambahan melalui kebergantungan arahan RUN. Kami kemudian menyalin keseluruhan direktori aplikasi ke direktori /var/www/html bekas dan menjalankan arahan pemasangan komposer untuk memasang kebergantungan PHP.

Seterusnya, kami mencipta fail bernama Dockerfile.nginx dan menyalin kandungan berikut ke dalam fail:

FROM nginx:latest

COPY nginx.conf /etc/nginx/nginx.conf
Salin selepas log masuk

Dockerfile ini menggunakan imej rasmi Nginx terkini sebagai imej asas dan menambah fail nginx.conf tersuai Salin ke /etc /nginx/ direktori bekas.

Bahagian 4: Buat Fail Konfigurasi Nginx
Dalam Fail Docker kami, kami telah menyebut fail konfigurasi yang dipanggil nginx.conf. Sekarang, kami mencipta fail bernama nginx.conf dan menyalin kandungan berikut ke dalam fail:

events {}

http {
  upstream php {
    server php:9000;
  }

  server {
    listen 80;

    location / {
      proxy_pass http://php;
      proxy_set_header Host $host;
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header X-Forwarded-Proto $scheme;
    }
  }
}
Salin selepas log masuk

Fail konfigurasi nginx.conf ini mentakrifkan pelayan huluan dipanggil php yang akan meminta proksi kepada perkhidmatan php Port 9000. Kami kemudiannya menentukan blok pelayan yang mendengar pada port 80 dan proksi semua permintaan ke pelayan huluan PHP.

Bahagian 5: Menjalankan Kluster Aplikasi
Kini, kami telah melengkapkan semua konfigurasi dan boleh memulakan kluster aplikasi kami dengan menjalankan perintah docker-compose up.

Di terminal, pergi ke direktori projek kami dan jalankan arahan berikut:

$ docker-compose up -d
Salin selepas log masuk

Arahan di atas akan memulakan kluster aplikasi kami di latar belakang. Sila tunggu seketika sehingga semua perkhidmatan bermula dengan jayanya.

Bahagian Enam: Menguji Kluster Aplikasi
Setelah kluster aplikasi kami berjaya dimulakan, kami boleh mengujinya dengan mengakses http://localhost melalui penyemak imbas.

Masukkan http://localhost dalam penyemak imbas dan tekan Enter. Jika semuanya baik-baik saja, anda sepatutnya dapat melihat aplikasi anda berjalan.

Bahagian 7: Menskala Kluster Aplikasi
Dengan menggunakan ciri skala Docker Compose, kami boleh menskalakan kluster aplikasi kami dengan mudah.

Andaikan kita ingin menambah bilangan contoh perkhidmatan php, kita boleh menjalankan arahan berikut:

$ docker-compose up -d --scale php=3
Salin selepas log masuk

Arahan di atas akan memulakan 3 contoh php untuk mencapai pengembangan mendatar kelompok aplikasi kami.

Kesimpulan:
Dengan menggunakan Docker Compose, Nginx dan MariaDB, kami boleh membina kluster aplikasi PHP berskala dengan mudah. Dalam artikel ini, kami menyediakan contoh asas untuk memulakan anda, serta contoh kod terperinci. Saya harap artikel ini membantu dan memberi inspirasi kepada anda untuk membina kelompok aplikasi yang lebih berkuasa.

Atas ialah kandungan terperinci Bina kelompok aplikasi PHP berskala menggunakan Docker Compose, Nginx dan MariaDB. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
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

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Cara membuat cermin di Docker Cara membuat cermin di Docker Apr 15, 2025 am 11:27 AM

Langkah -langkah untuk membuat imej Docker: Tulis Dockerfile yang mengandungi arahan membina. Bina imej di terminal, menggunakan arahan membina Docker. Tag imej dan tetapkan nama dan tag menggunakan arahan tag docker.

Cara mengemas kini imej Docker Cara mengemas kini imej Docker Apr 15, 2025 pm 12:03 PM

Langkah -langkah untuk mengemas kini imej Docker adalah seperti berikut: Tarik tag imej terkini imej baru memadam imej lama untuk tag tertentu (pilihan) mulakan semula bekas (jika diperlukan)

Cara menggunakan desktop docker Cara menggunakan desktop docker Apr 15, 2025 am 11:45 AM

Bagaimana cara menggunakan desktop Docker? Docktop Docktop adalah alat untuk menjalankan bekas Docker pada mesin tempatan. Langkah -langkah untuk digunakan termasuk: 1. Pasang desktop Docker; 2. Mulakan desktop Docker; 3. Buat imej Docker (menggunakan Dockerfile); 4. Membina imej Docker (menggunakan Docker Build); 5. Jalankan bekas Docker (menggunakan Docker Run).

Cara menyalin fail di Docker ke luar Cara menyalin fail di Docker ke luar Apr 15, 2025 pm 12:12 PM

Kaedah untuk menyalin fail ke tuan rumah luaran di Docker: Gunakan arahan CP Docker: Jalankan Docker CP [Options] & lt; Container Path & GT; & lt; PATH HOST & GT;. Menggunakan jumlah data: Buat direktori pada tuan rumah, dan gunakan parameter -V parameter untuk memasang direktori ke dalam bekas apabila membuat bekas untuk mencapai penyegerakan fail bidirectional.

Cara memeriksa nama bekas Docker Cara memeriksa nama bekas Docker Apr 15, 2025 pm 12:21 PM

Anda boleh menanyakan nama kontena Docker dengan mengikuti langkah -langkah: Senaraikan semua bekas (Docker PS). Tapis senarai kontena (menggunakan arahan grep). Mendapat nama kontena (terletak di lajur "Nama").

Cara Membaca Versi Docker Cara Membaca Versi Docker Apr 15, 2025 am 11:51 AM

Untuk mendapatkan versi Docker, anda boleh melakukan langkah -langkah berikut: Jalankan arahan Docker "Docker -version" untuk melihat versi klien dan pelayan. Untuk MAC atau Windows, anda juga boleh melihat maklumat versi melalui tab versi Docktop GUI atau menu desktop Docker.

Cara Menyelamatkan Gambar Docker Cara Menyelamatkan Gambar Docker Apr 15, 2025 am 11:54 AM

Untuk menyimpan imej di Docker, anda boleh menggunakan arahan Docker Commit untuk membuat imej baru, yang mengandungi keadaan semasa bekas yang ditentukan, Sintaks: Docker Commit [Options] Nama Imej Container ID. Untuk menyimpan imej ke repositori, anda boleh menggunakan arahan PUSH Docker, Sintaks: Docker Push Nama Imej [: TAG]. Untuk mengimport imej yang disimpan, anda boleh menggunakan arahan tarik docker, sintaks: docker tarik nama imej [: tag].

Cara keluar dari bekas dengan Docker Cara keluar dari bekas dengan Docker Apr 15, 2025 pm 12:15 PM

Empat cara untuk keluar dari Docker Container: Gunakan Ctrl D di terminal kontena masukkan perintah keluar di terminal kontena Gunakan Docker Stop & lt; container_name & gt; Perintah Gunakan Docker Kill & lt; container_name & gt; Perintah di terminal tuan rumah (keluar kuasa)

See all articles