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

WBOY
Lepaskan: 2023-10-12 13:50:02
asal
1103 orang telah melayarinya

使用Docker Compose、Nginx和MariaDB构建弹性可扩展的PHP应用程序集群

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

Pengenalan:
Dengan perkembangan pesat teknologi Internet, semakin banyak aplikasi perlu mempunyai ciri elastik dan berskala untuk memenuhi keperluan pengguna yang semakin meningkat . Dalam seni bina pelayan tradisional, untuk mencapai pengembangan anjal selalunya memerlukan konfigurasi dan pelarasan yang kompleks, yang menjadikannya sukar untuk memenuhi keperluan yang berubah dengan pantas. Menggunakan Docker Compose, Nginx dan MariaDB, kami boleh membina kluster aplikasi PHP yang anjal dan berskala dengan mudah untuk memenuhi keperluan konkurensi yang tinggi dan trafik yang besar.

1. Pengenalan kepada Docker Compose
Docker Compose ialah alat yang disediakan secara rasmi oleh Docker untuk mentakrif dan menjalankan berbilang bekas Docker. Melalui fail konfigurasi, kami boleh menentukan kebergantungan dan maklumat konfigurasi berbilang bekas, dan menggunakan arahan Docker Compose untuk menggunakan dan mengurus keseluruhan kluster dengan cepat.

2. Pengenalan kepada Nginx
Nginx ialah pelayan web berprestasi tinggi dan pelayan proksi terbalik yang boleh mengendalikan sejumlah besar sambungan serentak dan permintaan beban tinggi. Nginx dicirikan oleh ringan, kestabilan yang baik, dan penggunaan sumber yang rendah Ia sangat sesuai sebagai entri bahagian hadapan untuk kelompok aplikasi PHP.

3 Pengenalan kepada MariaDB
MariaDB ialah sistem pengurusan pangkalan data hubungan yang digunakan secara meluas dalam aplikasi web. Ia adalah garpu MySQL yang mengekalkan semua fungsi MySQL dan menambah beberapa ciri baharu dan pengoptimuman prestasi. MariaDB dicirikan oleh kelajuan pantas, kestabilan yang baik dan kebolehskalaan yang kuat, menjadikannya sangat sesuai sebagai pangkalan data bahagian belakang untuk kelompok aplikasi PHP.

4. Buat fail konfigurasi Docker Compose
Pertama, kita perlu mencipta fail konfigurasi Docker Compose bernama docker-compose.yml. Dalam fail ini, kita perlu menentukan set perkhidmatan dan menentukan kebergantungan antara mereka, imej kontena dan pemetaan port. Berikut ialah kandungan contoh fail konfigurasi:

version: "3"

services:
  nginx:
    image: nginx:latest
    ports:
      - "80:80"
    volumes:
      - ./nginx.conf:/etc/nginx/nginx.conf
    depends_on:
      - php

  php:
    image: php:latest
    volumes:
      - ./php:/var/www/html

  mariadb:
    image: mariadb:latest
    ports:
      - "3306:3306"
    environment:
      - MYSQL_ROOT_PASSWORD=secret
Salin selepas log masuk

Dalam fail konfigurasi di atas, kami mentakrifkan tiga perkhidmatan: nginx, php dan mariadb. Antaranya, perkhidmatan nginx menggunakan imej Nginx yang disediakan secara rasmi dan memetakan port 80 hos ke port kontena 80, perkhidmatan php menggunakan imej PHP yang disediakan secara rasmi dan memetakan direktori ./php hos ke /var/ www/html; direktori; perkhidmatan mariadb menggunakan imej MariaDB yang disediakan secara rasmi dan memetakan port 3306 hos ke port 3306 kontena. Selain itu, kami juga menentukan kebergantungan antara bekas melalui kata kunci depende_on untuk memastikan bekas php bermula sebelum bekas nginx bermula.

5. Tulis fail konfigurasi Nginx
Seterusnya, kita perlu menulis fail konfigurasi Nginx untuk menentukan tingkah laku dan peraturan pelayan web. Dalam fail ini, kita boleh menentukan hos maya, proksi terbalik, pengimbangan beban dan fungsi lain. Berikut ialah kandungan fail konfigurasi contoh:

server {
  listen 80;
  server_name example.com;

  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;
  }
}
Salin selepas log masuk

Dalam fail konfigurasi di atas, kami mentakrifkan hos maya yang mendengar pada port 80 dan memajukan semua permintaan ke perkhidmatan php. Melalui arahan proxy_pass, kami memajukan permintaan kepada perkhidmatan bernama php, iaitu nama perkhidmatan yang ditakrifkan oleh Docker Compose.

6. Bina dan mulakan kluster aplikasi
Selepas melengkapkan konfigurasi di atas, kita boleh menggunakan arahan Docker Compose untuk membina dan memulakan keseluruhan kluster aplikasi. Jalankan arahan berikut dalam terminal:

$ docker-compose up -d
Salin selepas log masuk

Arahan ini akan mencipta dan memulakan semua bekas yang ditentukan berdasarkan maklumat konfigurasi dalam fail docker-compose.yml. Parameter -d bermaksud berjalan dalam mod latar belakang, iaitu log tidak akan dipaparkan dalam masa nyata pada terminal. Setelah pelaksanaan selesai, kami boleh mengakses aplikasi dengan mengakses http://localhost.

7 Kembangkan kluster aplikasi
Jika anda perlu mengembangkan kluster aplikasi untuk memenuhi keperluan konkurensi yang lebih tinggi, kami hanya perlu menambah perkhidmatan php baharu pada fail konfigurasi Docker Compose. Sebagai contoh, kita boleh menambah kandungan berikut pada fail docker-compose.yml:

  php2:
    image: php:latest
    volumes:
      - ./php:/var/www/html
Salin selepas log masuk

Kemudian, gunakan perintah docker-compose up -d untuk membina semula dan memulakan keseluruhan kluster. Dengan cara ini, kami berjaya mengembangkan kelompok aplikasi dan mencapai keperluan pengembangan anjal.

Ringkasan:
Dengan menggunakan Docker Compose, Nginx dan MariaDB, kami boleh membina gugusan aplikasi PHP yang anjal dan berskala dengan mudah. Docker Compose menyediakan keupayaan untuk menggunakan dan mengurus kluster dengan cepat, Nginx sebagai portal bahagian hadapan boleh mengendalikan permintaan konkurensi tinggi dan trafik yang besar, dan MariaDB sebagai pangkalan data bahagian belakang menyediakan kestabilan dan kebolehskalaan. Dalam aplikasi praktikal, kami boleh mengkonfigurasi dan menyesuaikan secara fleksibel mengikut keperluan khusus untuk memenuhi keperluan perniagaan yang berubah-ubah.

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

Label berkaitan:
sumber:php.cn
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!