Rumah pembangunan bahagian belakang tutorial php Piawaian emas dengan Docker Compose, Nginx dan MariaDB: Membina kelompok aplikasi PHP berskala

Piawaian emas dengan Docker Compose, Nginx dan MariaDB: Membina kelompok aplikasi PHP berskala

Oct 12, 2023 pm 12:40 PM
nginx mariadb docker compose

Docker Compose、Nginx和MariaDB的黄金标准:构建可扩展的PHP应用程序集群

Standard emas Docker Compose, Nginx dan MariaDB: Membina kelompok aplikasi PHP berskala

Pengenalan
Dengan pembangunan aplikasi Internet yang berterusan, semakin banyak tapak web dan perkhidmatan perlu mengendalikan sejumlah besar permintaan dan data serentak, bagaimana untuk membina kelompok aplikasi berskala telah menjadi topik hangat. Dalam artikel ini, kami akan membincangkan cara menggunakan Docker Compose, Nginx dan MariaDB untuk membina kelompok aplikasi PHP yang boleh skala. Kami akan menggunakan contoh kod khusus untuk menunjukkan cara mengkonfigurasi dan mengurus kluster ini, dan cara mencapai pengembangan dinamik dan pengimbangan beban sumber.

1. Konfigurasi Docker Compose
Docker Compose ialah alat untuk mentakrif dan menjalankan berbilang bekas Docker Ia boleh mengurus kebergantungan dan sambungan rangkaian antara bekas melalui fail konfigurasi. Dalam kelompok aplikasi kami, kami akan menggunakan Docker Compose untuk mentakrif dan mengurus tiga bekas: Nginx, aplikasi PHP dan MariaDB.

Pertama, kita perlu mencipta fail docker-compose.yml dan mentakrifkan perkhidmatan kontena kami. docker-compose.yml文件,并定义我们的容器服务。

version: '3'

services:
  nginx:
    image: nginx
    ports:
      - 80:80
    depends_on:
      - php

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

  db:
    image: mariadb
    environment:
      MYSQL_ROOT_PASSWORD: example
Salin selepas log masuk

在这个配置文件中,我们定义了三个服务:Nginx、PHP和MariaDB。Nginx容器使用官方的Nginx镜像,并将容器的80端口映射到主机的80端口。PHP容器使用我们自己的Dockerfile来构建,并将主机的./php目录挂载到容器的/var/www/html目录。MariaDB容器使用官方的MariaDB镜像,并设置了一个root密码。

二、Nginx的配置
Nginx是一个高性能的Web服务器和反向代理服务器,它可以用于直接提供静态资源,也可以用来反向代理到后端的PHP应用程序。在我们的集群中,Nginx将担当转发请求到后端PHP容器的角色。

我们需要在Nginx容器中配置一个虚拟主机,用于将请求转发到PHP应用程序的容器。在Nginx的配置文件中,我们可以使用upstream指令来定义后端的PHP容器的地址,并使用proxy_pass指令将请求转发到这个地址。

我们可以将以下配置添加到nginx.conf文件中:

http {
    upstream php {
        server php:9000;
    }

    server {
        listen 80;

        location / {
            proxy_pass http://php;
        }
    }
}
Salin selepas log masuk

在这个配置中,我们使用upstream php定义了一个名为php的后端地址,并将请求转发到该地址上的9000端口。然后,我们在一个server块中,设置了Nginx监听80端口,并将所有请求通过proxy_pass指令转发给后端的PHP容器。

三、PHP应用程序的配置
在PHP应用程序的容器中,我们需要配置PHP解释器和应用程序代码。我们可以通过一个自定义的Dockerfile来构建这个容器,并在构建过程中安装必要的依赖项和扩展。

下面是一个示例的Dockerfile.php文件的内容:

FROM php:7.4-fpm

WORKDIR /var/www/html

COPY . .

RUN apt-get update && apt-get install -y 
    libpq-dev 
    && docker-php-ext-install pdo_mysql pdo_pgsql
Salin selepas log masuk

在这个Dockerfile中,我们使用官方的PHP 7.4-fpm镜像作为基础,设定工作目录为/var/www/html,然后将主机的应用程序代码复制到容器中。最后,我们使用apt-get

docker-compose up -d
Salin selepas log masuk

Dalam fail konfigurasi ini, kami mentakrifkan tiga perkhidmatan: Nginx, PHP dan MariaDB. Bekas Nginx menggunakan imej Nginx rasmi dan memetakan port kontena 80 ke port 80 hos. Bekas PHP dibina menggunakan Dockerfile kami sendiri dan melekapkan direktori ./php hos ke direktori /var/www/html bekas. Bekas MariaDB menggunakan imej MariaDB rasmi dan mempunyai set kata laluan akar.


2. Konfigurasi Nginx

Nginx ialah pelayan web berprestasi tinggi dan pelayan proksi terbalik Ia boleh digunakan untuk menyediakan sumber statik secara langsung, atau ia juga boleh digunakan untuk membalikkan proksi ke aplikasi PHP bahagian belakang. Dalam kelompok kami, Nginx akan memainkan peranan memajukan permintaan ke bekas PHP bahagian belakang.

Kita perlu mengkonfigurasi hos maya dalam bekas Nginx untuk memajukan permintaan ke bekas aplikasi PHP. Dalam fail konfigurasi Nginx, kami boleh menggunakan arahan upstream untuk mentakrifkan alamat bekas PHP back-end dan menggunakan arahan proxy_pass untuk memajukan permintaan ke alamat ini .

Kami boleh menambah konfigurasi berikut pada fail nginx.conf:

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

Dalam konfigurasi ini, kami menggunakan upstream php untuk mentakrifkan fail bernama php < /code>'s alamat belakang dan majukan permintaan ke port 9000 pada alamat tersebut. Kemudian, dalam blok <code>server, kami menyediakan Nginx untuk mendengar pada port 80 dan memajukan semua permintaan ke bekas PHP bahagian belakang melalui arahan proxy_pass.

3. Konfigurasi aplikasi PHP

Dalam bekas aplikasi PHP, kita perlu mengkonfigurasi penterjemah PHP dan kod aplikasi. Kami boleh membina bekas ini melalui Dockerfile tersuai dan memasang kebergantungan dan sambungan yang diperlukan semasa proses binaan.

Berikut ialah kandungan contoh fail Dockerfile.php:

docker-compose down
Salin selepas log masuk

Dalam Fail Docker ini, kami menggunakan imej PHP 7.4-fpm rasmi sebagai asas dan menetapkan direktori kerja kepada /var/www/html dan kemudian menyalin kod aplikasi hos ke dalam bekas. Akhir sekali, kami memasang beberapa sambungan PHP menggunakan perintah <code>apt-get.

4. Penetapan dan pengurusan Kluster🎜Selepas melengkapkan konfigurasi di atas, kami boleh menggunakan Docker Compose untuk memulakan keseluruhan kluster dan mencapai pengembangan dinamik dan pengimbangan sumber. 🎜🎜Dalam baris arahan, kita boleh menggunakan arahan berikut untuk memulakan kluster: 🎜rrreee🎜Arahan ini akan memulakan semua bekas dan meletakkannya pada rangkaian berasingan supaya mereka boleh berkomunikasi antara satu sama lain. Nginx akan mendengar pada port 80 mesin hos dan memajukan permintaan ke bekas PHP di bahagian belakang. 🎜🎜Jika kami ingin mengembangkan kluster aplikasi kami, kami boleh menggunakan arahan berikut untuk memulakan lebih banyak bekas PHP: 🎜rrreee🎜Arahan ini akan memulakan 3 bekas PHP, dengan itu mengembangkan kluster aplikasi kami. Nginx akan melaksanakan pengimbangan beban secara automatik berdasarkan bilangan bekas bahagian belakang. 🎜🎜Jika kita perlu menghentikan kluster, kita boleh menggunakan arahan berikut: 🎜rrreee🎜Arahan ini akan menghentikan dan memadam semua bekas dan rangkaian. 🎜🎜Kesimpulan🎜Artikel ini memperkenalkan cara menggunakan Docker Compose, Nginx dan MariaDB untuk membina kelompok aplikasi PHP berskala, dan menunjukkan kaedah konfigurasi dan pengurusan melalui contoh kod khusus. Dengan menggunakan Docker Compose, kami boleh melancarkan, mengurus dan menskalakan kluster aplikasi kami dengan mudah. Pada masa yang sama, dengan fungsi proksi terbalik Nginx, kami boleh mencapai pengimbangan beban permintaan, dengan itu meningkatkan prestasi dan ketersediaan aplikasi. 🎜

Atas ialah kandungan terperinci Piawaian emas dengan Docker Compose, Nginx dan MariaDB: Membina kelompok aplikasi PHP berskala. 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.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

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)

Bagaimana untuk membenarkan akses rangkaian luaran ke pelayan tomcat Bagaimana untuk membenarkan akses rangkaian luaran ke pelayan tomcat Apr 21, 2024 am 07:22 AM

Untuk membenarkan pelayan Tomcat mengakses rangkaian luaran, anda perlu: mengubah suai fail konfigurasi Tomcat untuk membenarkan sambungan luaran. Tambahkan peraturan tembok api untuk membenarkan akses kepada port pelayan Tomcat. Buat rekod DNS yang menunjukkan nama domain ke IP awam pelayan Tomcat. Pilihan: Gunakan proksi terbalik untuk meningkatkan keselamatan dan prestasi. Pilihan: Sediakan HTTPS untuk meningkatkan keselamatan.

Bagaimana untuk menjalankan thinkphp Bagaimana untuk menjalankan thinkphp Apr 09, 2024 pm 05:39 PM

Langkah-langkah untuk menjalankan ThinkPHP Framework secara setempat: Muat turun dan nyahzip ThinkPHP Framework ke direktori tempatan. Buat hos maya (pilihan) yang menunjuk ke direktori akar ThinkPHP. Konfigurasikan parameter sambungan pangkalan data. Mulakan pelayan web. Mulakan aplikasi ThinkPHP. Akses URL aplikasi ThinkPHP dan jalankannya.

Selamat datang ke nginx! Bagaimana untuk menyelesaikannya? Selamat datang ke nginx! Bagaimana untuk menyelesaikannya? Apr 17, 2024 am 05:12 AM

Untuk menyelesaikan ralat "Selamat datang ke nginx!", anda perlu menyemak konfigurasi hos maya, dayakan hos maya, muat semula Nginx, jika fail konfigurasi hos maya tidak dapat ditemui, buat halaman lalai dan muat semula Nginx, kemudian mesej ralat akan hilang dan laman web akan menjadi paparan biasa.

Bagaimana untuk menjana URL daripada fail html Bagaimana untuk menjana URL daripada fail html Apr 21, 2024 pm 12:57 PM

Menukar fail HTML kepada URL memerlukan pelayan web, yang melibatkan langkah berikut: Dapatkan pelayan web. Sediakan pelayan web. Muat naik fail HTML. Buat nama domain. Halakan permintaan.

Bagaimana untuk menggunakan projek nodejs ke pelayan Bagaimana untuk menggunakan projek nodejs ke pelayan Apr 21, 2024 am 04:40 AM

Langkah-langkah penggunaan pelayan untuk projek Node.js: Sediakan persekitaran penggunaan: dapatkan akses pelayan, pasang Node.js, sediakan repositori Git. Bina aplikasi: Gunakan npm run build untuk menjana kod dan kebergantungan yang boleh digunakan. Muat naik kod ke pelayan: melalui Git atau Protokol Pemindahan Fail. Pasang kebergantungan: SSH ke dalam pelayan dan gunakan pemasangan npm untuk memasang kebergantungan aplikasi. Mulakan aplikasi: Gunakan arahan seperti node index.js untuk memulakan aplikasi, atau gunakan pengurus proses seperti pm2. Konfigurasikan proksi terbalik (pilihan): Gunakan proksi terbalik seperti Nginx atau Apache untuk menghalakan trafik ke aplikasi anda

Apakah arahan yang paling biasa dalam fail docker Apakah arahan yang paling biasa dalam fail docker Apr 07, 2024 pm 07:21 PM

Arahan yang paling biasa digunakan dalam Dockerfile ialah: DARI: Cipta imej baharu atau terbitkan imej baharu RUN: Laksanakan arahan (pasang perisian, konfigurasikan sistem) COPY: Salin fail tempatan ke imej TAMBAH: Sama seperti COPY, ia boleh menyahmampat secara automatik tar arkib atau dapatkan fail URL CMD: Tentukan arahan apabila bekas bermula DEDAHKAN: Isytiharkan port mendengar kontena (tetapi tidak umum) ENV: Tetapkan pembolehubah persekitaran VOLUME: Pasang direktori hos atau volum tanpa nama WORKDIR: Tetapkan direktori kerja dalam bekas ENTRYPOINT: Tentukan perkara yang hendak dilaksanakan apabila bekas itu memulakan Fail Boleh laku (serupa dengan CMD, tetapi tidak boleh ditimpa)

Bolehkah nodejs diakses dari luar? Bolehkah nodejs diakses dari luar? Apr 21, 2024 am 04:43 AM

Ya, Node.js boleh diakses dari luar. Anda boleh menggunakan kaedah berikut: Gunakan Cloud Functions untuk menggunakan fungsi dan menjadikannya boleh diakses secara umum. Gunakan rangka kerja Express untuk membuat laluan dan menentukan titik akhir. Gunakan Nginx untuk membalikkan permintaan proksi kepada aplikasi Node.js. Gunakan bekas Docker untuk menjalankan aplikasi Node.js dan dedahkannya melalui pemetaan port.

Bagaimana untuk menggunakan dan menyelenggara laman web menggunakan PHP Bagaimana untuk menggunakan dan menyelenggara laman web menggunakan PHP May 03, 2024 am 08:54 AM

Untuk berjaya menggunakan dan menyelenggara tapak web PHP, anda perlu melakukan langkah berikut: Pilih pelayan web (seperti Apache atau Nginx) Pasang PHP Cipta pangkalan data dan sambungkan PHP Muat naik kod ke pelayan Sediakan nama domain dan Pemantauan DNS penyelenggaraan tapak web langkah termasuk mengemas kini PHP dan pelayan web, dan membuat sandaran tapak web, memantau log ralat dan mengemas kini kandungan.

See all articles