Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Penskalaan mendatar aplikasi PHP dengan Docker Compose, Nginx dan MariaDB

Penskalaan mendatar aplikasi PHP dengan Docker Compose, Nginx dan MariaDB

WBOY
WBOYasal
2023-10-12 11:22:561360semak imbas

通过Docker Compose、Nginx和MariaDB实现PHP应用程序的水平扩展

Peluasan mendatar aplikasi PHP melalui Docker Compose, Nginx dan MariaDB

Dengan pembangunan Internet dan peningkatan dalam kerumitan aplikasi, cara mengembangkan prestasi aplikasi dengan cekap telah menjadi isu penting. Penskalaan mendatar ialah penyelesaian yang meningkatkan kuasa pemprosesan aplikasi dengan menambah kejadian pelayan. Dalam artikel ini, saya akan memperkenalkan cara menggunakan Docker Compose, Nginx dan MariaDB untuk mencapai penskalaan mendatar aplikasi PHP dan memberikan contoh kod khusus.

Persediaan persekitaran:
Sebelum kita mula, kita perlu menyediakan beberapa persekitaran, termasuk mesin dengan Docker dan Docker Compose dipasang. Jika anda belum memasang alat ini lagi, anda boleh mendapatkan panduan pemasangan yang berkaitan di tapak web rasmi.

Langkah 1: Buat fail Docker Compose
Mula-mula, buat fail bernama docker-compose.yml dan tentukan perkhidmatan kami di dalamnya. Di bawah ialah kandungan contoh fail karang:

version: '3.7'
services:
  web:
    build: ./web
    ports:
      - 80:80
    networks:
      - app-net
    depends_on:
      - db
  db:
    image: mariadb
    environment:
      - MYSQL_ROOT_PASSWORD=your_password
    networks:
      - app-net
networks:
  app-net:

Dalam contoh di atas, kami telah menentukan dua perkhidmatan: web dan db. Perkhidmatan web digunakan untuk menjalankan aplikasi Nginx dan PHP, dan perkhidmatan db digunakan untuk menjalankan pangkalan data MariaDB.

Langkah 2: Buat Dockerfile untuk aplikasi Nginx dan PHP
Dalam langkah sebelumnya, kami menetapkan laluan binaan perkhidmatan web sebagai ./web. Sekarang, kita perlu mencipta fail Docker dalam direktori ini untuk membina imej aplikasi Nginx dan PHP. Berikut ialah contoh fail Docker yang mudah:

FROM nginx:latest

# 安装PHP和一些扩展
RUN apt-get update && 
    apt-get install -y php7.4-cli php7.4-fpm php7.4-mysql

# 复制PHP应用程序到容器中
COPY app /var/www/html

# 配置Nginx
COPY nginx.conf /etc/nginx/nginx.conf

# 启动Nginx和PHP-FPM
CMD service php7.4-fpm start && nginx -g "daemon off;"

Dalam contoh di atas, kami menggunakan nginx:latest sebagai imej asas dan memasang PHP dan beberapa sambungan biasa di dalamnya. Kami kemudian menyalin aplikasi PHP ke dalam bekas dan menyalin fail nginx.conf tersuai.

Langkah 3: Buat fail konfigurasi Nginx
Dalam Fail Docker dalam langkah sebelumnya, kami menggunakan fail nginx.conf tersuai. Sekarang, kita perlu mencipta fail ini dalam direktori ./web dan menentukan konfigurasi Nginx. Di bawah ialah kandungan contoh fail nginx.conf:

worker_processes  1;

events {
    worker_connections  1024;
}

http {
    server {
        listen  80;
        server_name  localhost;
        root  /var/www/html;
        index  index.php index.html;

        location ~ .php$ {
            fastcgi_pass  web:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            include  fastcgi_params;
        }

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

Dalam contoh di atas, kami mentakrifkan hos maya untuk Nginx dan memajukan permintaan ke bekas PHP-FPM bernama web.

Langkah 4: Buat aplikasi PHP
Dalam fail konfigurasi nginx.conf dalam langkah sebelumnya, kami menetapkan direktori akar aplikasi PHP sebagai /var/www/html. Sekarang, kita perlu mencipta folder bernama app di bawah direktori ./web dan meletakkan kod aplikasi PHP ke dalamnya.

Langkah 5: Mulakan kluster kontena
Selepas menyiapkan persiapan di atas, kini kita boleh memulakan kluster kontena. Dalam terminal, masukkan direktori tempat docker-compose.yml berada dan laksanakan arahan berikut:

docker-compose up -d

Perintah ini akan memulakan perkhidmatan web dan db dan menyambungkannya ke rangkaian bernama app-net. Perkhidmatan web akan mengikat port 80 mesin hos untuk menerima permintaan HTTP dari luar.

Pada ketika ini, kami telah berjaya menggunakan Docker Compose, Nginx dan MariaDB untuk mencapai penskalaan mendatar aplikasi PHP. Kini, kita boleh menskalakan aplikasi menggunakan arahan berikut:

docker-compose up --scale web=n

di mana n ialah bilangan tika perkhidmatan web yang akan diskalakan.

Ringkasan:
Artikel ini memperkenalkan cara menggunakan Docker Compose, Nginx dan MariaDB untuk mencapai pengembangan mendatar aplikasi PHP dan menyediakan contoh kod khusus. Dengan menggunakan alatan ini, kami boleh dengan cepat dan mudah menskalakan prestasi aplikasi kami untuk memenuhi keperluan pengguna yang semakin meningkat. Saya harap artikel ini dapat membantu semua orang dalam amalan.

Atas ialah kandungan terperinci Penskalaan mendatar aplikasi PHP dengan Docker Compose, Nginx dan MariaDB. 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