Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Mengoptimumkan isu prestasi aplikasi PHP menggunakan Docker Compose, Nginx dan MariaDB

Mengoptimumkan isu prestasi aplikasi PHP menggunakan Docker Compose, Nginx dan MariaDB

WBOY
WBOYasal
2023-10-12 12:55:56747semak imbas

使用Docker Compose、Nginx和MariaDB优化PHP应用程序的性能问题

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.

  1. Buat fail Docker Compose

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.

  1. Tulis fail konfigurasi Nginx

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.

  1. Menulis aplikasi 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!";
?>
  1. Mulakan bekas

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.

  1. Menguji prestasi

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!

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