


Bina seni bina aplikasi PHP berskala menggunakan Docker Compose, Nginx dan MariaDB
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
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; } }
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 masuklose Permohonan:
edocker-compose down
Salin selepas log masukView Log Aplikasi:
docker-compose logs
Salin selepas log masukView Status Permohonan:
docker-compose ps
Salin selepas log masukMelalui 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!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



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.

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.

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.

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.

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.

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.

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

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.
