Rumah pembangunan bahagian belakang tutorial php Bina seni bina aplikasi PHP berskala menggunakan Docker Compose, Nginx dan MariaDB

Bina seni bina aplikasi PHP berskala menggunakan Docker Compose, Nginx dan MariaDB

Oct 12, 2023 am 11:15 AM
nginx mariadb docker compose

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

Bina seni bina aplikasi PHP berskala menggunakan Docker Compose, Nginx dan MariaDB

Pengenalan:
Dengan pembangunan teknologi pengkomputeran awan dan virtualisasi, menggunakan bekas untuk membina dan mengurus aplikasi telah menjadi penyelesaian arus perdana hari ini. Dalam penggunaan aplikasi tradisional, mengkonfigurasi dan mengurus persekitaran aplikasi selalunya membosankan dan terdedah kepada ralat. Penggunaan teknologi kontena boleh membungkus aplikasi dan persekitaran yang bergantung kepada mereka, sekali gus memudahkan proses penggunaan dan pengurusan aplikasi.

Artikel ini akan memperkenalkan cara menggunakan tiga alatan Docker Compose, Nginx dan MariaDB untuk membina seni bina aplikasi PHP berskala dan menyediakan contoh kod khusus. Saya berharap melalui pengenalan artikel ini, pembaca dapat memahami cara menggunakan alat ini untuk membina persekitaran aplikasi yang stabil dan berskala.

1. Konsep asas Docker Compose
Docker Compose ialah alat untuk mentakrif dan mengurus aplikasi Docker berbilang bekas. Melalui fail yaml yang berasingan, kami boleh menentukan pelbagai komponen aplikasi, termasuk imej bekas, pembolehubah persekitaran, konfigurasi rangkaian, dsb.

Berikut ialah contoh fail Karang Docker asas:

version: '3'
services:
  web:
    image: nginx:latest
    ports:
      - "80:80"
    volumes:
      - ./app:/usr/share/nginx/html
    links:
      - php
  php:
    image: php:fpm
    volumes:
      - ./app:/var/www/html
  db:
    image: mariadb:latest
    environment:
      - MYSQL_ROOT_PASSWORD=root
      - MYSQL_DATABASE=myapp
      - MYSQL_USER=myuser
      - MYSQL_PASSWORD=mypassword
Salin selepas log masuk

Dalam contoh di atas, kami telah mentakrifkan tiga perkhidmatan: web, php dan db. Perkhidmatan web menggunakan imej Nginx terkini dan mendedahkan port kontena 80, memetakan port luaran 80 ke port kontena 80. Pada masa yang sama, kami juga melekapkan direktori ./app ke direktori /usr/share/nginx/html bekas, supaya fail pada hos dan fail dalam bekas boleh disegerakkan. Perkhidmatan php menggunakan imej PHP-FPM rasmi dan melekapkan direktori ./app ke direktori /var/www/html bekas. Perkhidmatan db menggunakan imej MariaDB terkini dan menetapkan beberapa pembolehubah persekitaran untuk mengkonfigurasi pangkalan data.

2. Integrasi Nginx dan PHP
Dalam seni bina aplikasi berasaskan Docker, Nginx biasanya digunakan sebagai pelayan proksi terbalik, memajukan permintaan untuk fail statik ke pelayan Nginx dan memajukan permintaan dinamik ke pelayan PHP-FPM untuk diproses . Berikut ialah contoh konfigurasi Nginx:

server {
    listen 80;
    server_name example.com;

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

    location ~ .php$ {
        fastcgi_pass php:9000;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
}
Salin selepas log masuk

Dalam contoh di atas, kami mula-mula menentukan blok pelayan, mendengar port 80 dan menetapkan nama_pelayan. Seterusnya, gunakan arahan lokasi untuk mengkonfigurasi peraturan pemajuan permintaan. Apabila URI yang diminta berakhir dengan .php, permintaan akan dimajukan ke port 9000 perkhidmatan php dan nama fail yang diminta akan dihantar ke pelayan PHP-FPM sebagai parameter SCRIPT_FILENAME.

3. Konfigurasi MariaDB
Apabila membina seni bina aplikasi berskala, kebolehskalaan pangkalan data juga sangat penting. Dalam seni bina Docker, kami boleh menggunakan dan mengkonfigurasi contoh pangkalan data dengan cepat dengan menggunakan imej MariaDB.

Dalam contoh fail Docker Compose di atas, kami menggunakan imej MariaDB terkini dan menetapkan beberapa pembolehubah persekitaran untuk mengkonfigurasi pangkalan data. Melalui pembolehubah persekitaran ini, kita boleh menetapkan kata laluan akar, nama pangkalan data, nama pengguna dan kata laluan pangkalan data.

4. Gunakan Docker Compose untuk membina dan mengurus aplikasi
Dengan fail konfigurasi di atas, kami boleh menggunakan arahan Docker Compose untuk membina dan mengurus aplikasi kami. Berikut adalah beberapa Docker yang biasa digunakan untuk menyusun arahan:

  • Membuat Permohonan:

    docker-compose up -d
    Salin selepas log masuk
  • lose Permohonan:

    docker-compose down
    Salin selepas log masuk
    e
  • View Log Aplikasi:

    docker-compose logs
    Salin selepas log masuk
  • View Status Permohonan:

    docker-compose ps
    Salin selepas log masuk

    Melalui arahan ini, kita boleh membina, memulakan dan mengurus aplikasi dengan mudah.

    5. Ringkasan
    Artikel ini memperkenalkan cara menggunakan Docker Compose, Nginx dan MariaDB untuk membina seni bina aplikasi PHP berskala dan menyediakan contoh kod khusus. Dengan menggunakan alatan ini, kami boleh memudahkan proses penggunaan dan pengurusan aplikasi serta mencapai kebolehskalaan aplikasi.

    Perlu diingat bahawa contoh yang disediakan dalam artikel ini adalah untuk tujuan demonstrasi sahaja dan mungkin sedikit berbeza daripada persekitaran pengeluaran sebenar. Semasa proses penggunaan sebenar, pelarasan dan pengoptimuman perlu dibuat berdasarkan keadaan sebenar.

    Saya berharap melalui pengenalan artikel ini, pembaca dapat memahami asas menggunakan Docker Compose, Nginx dan MariaDB untuk membina seni bina aplikasi PHP berskala, dan dapat menggunakan teknologi ini dalam amalan untuk membina aplikasi mereka sendiri.

    Atas ialah kandungan terperinci Bina seni bina 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.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Akan R.E.P.O. Ada Crossplay?
1 bulan 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)

Cara memeriksa sama ada nginx dimulakan Cara memeriksa sama ada nginx dimulakan Apr 14, 2025 pm 01:03 PM

Bagaimana untuk mengesahkan sama ada nginx dimulakan: 1. Gunakan baris arahan: status sistem sistem nginx (linux/unix), netstat -ano | Findstr 80 (Windows); 2. Periksa sama ada port 80 dibuka; 3. Semak mesej permulaan Nginx dalam log sistem; 4. Gunakan alat pihak ketiga, seperti Nagios, Zabbix, dan Icinga.

Cara Mengkonfigurasi Nginx di Windows Cara Mengkonfigurasi Nginx di Windows Apr 14, 2025 pm 12:57 PM

Bagaimana cara mengkonfigurasi nginx di Windows? Pasang Nginx dan buat konfigurasi hos maya. Ubah suai fail konfigurasi utama dan sertakan konfigurasi hos maya. Mulakan atau Muat semula Nginx. Uji konfigurasi dan lihat laman web. Selektif membolehkan SSL dan mengkonfigurasi sijil SSL. Selektif tetapkan firewall untuk membolehkan trafik port 80 dan 443.

Cara menyelesaikan masalah domain nginx Cara menyelesaikan masalah domain nginx Apr 14, 2025 am 10:15 AM

Terdapat dua cara untuk menyelesaikan masalah silang domain Nginx: Ubah suai tajuk tindak balas silang domain: Tambah arahan untuk membenarkan permintaan lintas domain, nyatakan kaedah dan tajuk yang dibenarkan, dan tetapkan masa cache. Gunakan modul CORS: Dayakan modul dan konfigurasikan peraturan CORS untuk membolehkan permintaan, kaedah, tajuk, dan masa cache domain.

Cara memulakan nginx di linux Cara memulakan nginx di linux Apr 14, 2025 pm 12:51 PM

Langkah -langkah untuk memulakan Nginx di Linux: Periksa sama ada Nginx dipasang. Gunakan SistemCTL Mula Nginx untuk memulakan perkhidmatan Nginx. Gunakan SistemCTL Dayakan NGINX untuk membolehkan permulaan automatik Nginx pada permulaan sistem. Gunakan Status SistemCTL Nginx untuk mengesahkan bahawa permulaan berjaya. Lawati http: // localhost dalam pelayar web untuk melihat halaman selamat datang lalai.

Bagaimana untuk memeriksa sama ada Nginx dimulakan? Bagaimana untuk memeriksa sama ada Nginx dimulakan? Apr 14, 2025 pm 12:48 PM

Di Linux, gunakan arahan berikut untuk memeriksa sama ada nginx dimulakan: Hakim status SistemCTL Nginx berdasarkan output arahan: Jika "Aktif: Aktif (Running)" dipaparkan, Nginx dimulakan. Jika "aktif: tidak aktif (mati)" dipaparkan, nginx dihentikan.

Cara memeriksa status nginx yang berjalan Cara memeriksa status nginx yang berjalan Apr 14, 2025 am 11:48 AM

Kaedah untuk melihat status berjalan nginx adalah: Gunakan arahan PS untuk melihat status proses; Lihat fail konfigurasi nginx /etc/nginx/nginx.conf; Gunakan modul status nginx untuk membolehkan titik akhir status; Gunakan alat pemantauan seperti Prometheus, Zabbix, atau Nagios.

Cara memulakan pelayan nginx Cara memulakan pelayan nginx Apr 14, 2025 pm 12:27 PM

Memulakan pelayan Nginx memerlukan langkah-langkah yang berbeza mengikut sistem operasi yang berbeza: Sistem Linux/Unix: Pasang pakej Nginx (contohnya, menggunakan apt-get atau yum). Gunakan SystemCTL untuk memulakan perkhidmatan Nginx (contohnya, SUDO SystemCTL Mula Nginx). Sistem Windows: Muat turun dan pasang fail binari Windows. Mula Nginx menggunakan nginx.exe executable (contohnya, nginx.exe -c conf \ nginx.conf). Tidak kira sistem operasi yang anda gunakan, anda boleh mengakses IP pelayan

Cara menyelesaikan ralat nginx304 Cara menyelesaikan ralat nginx304 Apr 14, 2025 pm 12:45 PM

Jawab kepada Soalan: 304 Tidak diubahsuai ralat menunjukkan bahawa penyemak imbas telah cache versi sumber terkini permintaan klien. Penyelesaian: 1. Kosongkan cache penyemak imbas; 2. Lumpuhkan cache penyemak imbas; 3. Konfigurasi nginx untuk membolehkan cache pelanggan; 4. Periksa keizinan fail; 5. Semak fail hash; 6. Lumpuhkan CDN atau cache proksi terbalik; 7. Mulakan semula nginx.

See all articles