Optimumkan isu prestasi aplikasi PHP menggunakan Docker Compose, Nginx dan MariaDB
Apabila membangun dan menggunakan aplikasi PHP, isu prestasi sering dihadapi. Untuk menyelesaikan masalah ini, kami boleh memanfaatkan Docker Compose, Nginx dan MariaDB untuk mengoptimumkan prestasi aplikasi.
Docker Compose ialah alat untuk mentakrif dan mengurus berbilang bekas Docker. Ia membantu kami membuat dan menjalankan berbilang bekas dengan mudah seperti Nginx, PHP dan MariaDB. Walaupun Nginx ialah pelayan web berprestasi tinggi, MariaDB ialah pangkalan data hubungan yang popular.
Yang berikut akan memperkenalkan secara terperinci cara menggunakan Docker Compose, Nginx dan MariaDB untuk mengoptimumkan prestasi aplikasi PHP.
Mula-mula, kita perlu mencipta fail Docker Compose untuk menentukan bekas kami. Dalam fail yang dipanggil docker-compose.yml, bekas kami boleh ditakrifkan seperti berikut:
version: '3' services: nginx: image: nginx:latest ports: - 80:80 volumes: - ./nginx.conf:/etc/nginx/nginx.conf - ./public:/var/www/html php: image: php:7.4-fpm volumes: - ./public:/var/www/html mariadb: image: mariadb:latest environment: MYSQL_ROOT_PASSWORD: root volumes: - ./data:/var/lib/mysql
Dalam contoh di atas, kami telah menentukan tiga perkhidmatan: nginx, php dan mariadb. Perkhidmatan Nginx menggunakan versi terkini imej Nginx dan memetakan port 80 hos ke port 80 bekas. Kami juga memasang fail nginx.conf tempatan ke dalam bekas untuk menyesuaikan konfigurasi Nginx. Perkhidmatan PHP menggunakan imej PHP 7.4-fpm dan melekapkan direktori ./public hos ke direktori /var/www/html dalam bekas. Perkhidmatan MariaDB menggunakan versi terkini imej MariaDB, menetapkan kata laluan pengguna root dan melekapkan direktori ./data hos ke direktori /var/lib/mysql dalam bekas.
Seterusnya, kita perlu menulis fail konfigurasi Nginx. Cipta fail bernama nginx.conf dalam direktori yang sama dengan fail docker-compose.yml dan konfigurasikannya mengikut contoh berikut:
user nginx; worker_processes auto; events { worker_connections 1024; } http { include /etc/nginx/mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 65; server { listen 80; server_name localhost; root /var/www/html; index index.php index.html; location / { try_files $uri $uri/ /index.php?$query_string; } location ~ .php$ { fastcgi_pass php:9000; fastcgi_index index.php; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; } } error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html; } }
Dalam contoh di atas, kami menentukan blok pelayan bernama localhost untuk mendengar Port 80. Direktori akar ditetapkan kepada /var/www/html dan semua permintaan dihantar ke index.php untuk diproses. Pada masa yang sama, kami juga mengkonfigurasi fastcgi_pass untuk memajukan permintaan PHP ke port 9000 dalam bekas php.
Kini, kita perlu menulis aplikasi PHP mudah untuk menguji kesan pengoptimuman prestasi. Buat fail bernama index.php dalam direktori ./public dan tambah kandungan berikut:
<?php echo "Hello, Docker!"; ?>
Masukkan direktori di mana fail docker-compose.yml terletak di terminal dan jalankan arahan berikut untuk memulakan bekas:
docker-compose up -d
Ini akan bermula dan berjalan di latar belakang semua bekas yang kami tentukan.
Kini, kita boleh mengakses http://localhost dalam penyemak imbas dan kita seharusnya melihat output Hello, Docker!. Ini bermakna aplikasi PHP kami telah berjalan dengan jayanya.
Dengan menggunakan Docker Compose, Nginx dan MariaDB, kami boleh mencipta dan mengurus berbilang bekas dengan mudah serta menggunakan Nginx sebagai pelayan web berprestasi tinggi dan MariaDB sebagai pangkalan data. Ini boleh meningkatkan prestasi aplikasi PHP kami.
Perlu diingat bahawa ini hanyalah satu contoh, anda boleh melakukan pengoptimuman yang lebih maju mengikut keperluan anda sendiri. Contohnya, gunakan alat caching seperti Redis untuk meningkatkan prestasi, atau gunakan alat pengimbangan beban untuk mengimbangi beban.
Ringkasan
Menggunakan Docker Compose, Nginx dan MariaDB untuk mengoptimumkan isu prestasi dalam aplikasi PHP ialah kaedah yang agak mudah dan berkesan. Dengan menggunakan Docker untuk mengurus dan menggunakan bekas, kami boleh membina persekitaran aplikasi PHP yang stabil dan berprestasi tinggi dengan mudah. Saya harap pengenalan dalam artikel ini dapat membantu anda.
Atas ialah kandungan terperinci Mengoptimumkan isu prestasi aplikasi PHP menggunakan Docker Compose, Nginx dan MariaDB. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!