Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Penalaan dalam talian aplikasi PHP melalui Docker Compose, Nginx dan MariaDB

Penalaan dalam talian aplikasi PHP melalui Docker Compose, Nginx dan MariaDB

WBOY
WBOYasal
2023-10-12 12:30:391422semak imbas

通过Docker Compose、Nginx和MariaDB实现PHP应用程序的线上调优

Penalaan dalam talian aplikasi PHP melalui Docker Compose, Nginx dan MariaDB

Pengenalan:
Pengoptimuman prestasi ialah aspek yang sangat penting semasa membangun dan menggunakan aplikasi PHP. Untuk mencapai penalaan dalam talian, kami boleh menggunakan alatan seperti Docker Compose, Nginx dan MariaDB untuk membina persekitaran aplikasi PHP berprestasi tinggi. Artikel ini akan memperkenalkan cara menggunakan alat ini untuk penalaan dalam talian dan menyediakan contoh kod khusus untuk membimbing operasi praktikal.

1. Docker Compose
Docker Compose ialah alat untuk mentakrif dan menjalankan aplikasi Docker berbilang bekas. Ia memudahkan penggunaan dan pengurusan aplikasi dan menyediakan orkestrasi kontena automatik dan komunikasi antara kontena. Apabila melakukan penalaan dalam talian, kami boleh menggunakan Docker Compose untuk mengurus dan menjadualkan aplikasi PHP, kontena Nginx dan MariaDB.

Berikut ialah contoh fail Docker Compose mudah untuk menyediakan aplikasi PHP, persekitaran Nginx dan MariaDB:

version: '3'
services:
  web:
    build: .
    ports:
      - 80:80
    links:
      - db
  db:
    image: mariadb
    environment:
      MYSQL_ROOT_PASSWORD: example

Dalam contoh ini, kami mentakrifkan dua bekas: web dan db. Bekas web akan membina imej Docker dalam direktori semasa dan memetakan port kontena 80 ke port 80 hos, supaya kami boleh mengakses aplikasi PHP melalui port 80 hos. Bekas db menggunakan imej rasmi MariaDB dan menetapkan kata laluan pengguna root kepada contoh. Kita boleh mengubah suai dan mengembangkannya mengikut keadaan sebenar.

2. Nginx
Nginx ialah pelayan web berprestasi tinggi dan pelayan proksi terbalik yang boleh menghala dan mengedarkan permintaan melalui fail konfigurasi. Apabila melakukan penalaan dalam talian, kami boleh menggunakan Nginx untuk mengoptimumkan pemprosesan permintaan dan penyajian fail statik aplikasi PHP.

Berikut ialah contoh fail konfigurasi Nginx yang mudah untuk memajukan permintaan aplikasi PHP ke bekas web:

server {
    listen 80;
    server_name example.com;

    location / {
        proxy_pass http://web;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }
}

Dalam contoh ini, kami menyediakan Nginx untuk mendengar pada port 80 dan menggunakan example.com sebagai nama pelayan. Untuk semua permintaan, kami menggunakan arahan proxy_pass untuk memajukan permintaan ke bekas bernama web. Dengan menetapkan arahan proxy_set_header, kami boleh menghantar maklumat pengepala Hos dan X-Real-IP permintaan asal kepada bekas web. Anda boleh mengkonfigurasi dan mengoptimumkan mengikut keadaan sebenar.

3. MariaDB
MariaDB ialah sistem pengurusan pangkalan data hubungan sumber terbuka, yang merupakan cabang MySQL. Apabila melakukan penalaan dalam talian, kami boleh menggunakan MariaDB untuk mengoptimumkan pertanyaan pangkalan data dan penyimpanan data aplikasi PHP.

Berikut ialah contoh kod untuk aplikasi PHP mudah menggunakan MariaDB untuk pertanyaan pangkalan data:

<?php
$servername = "db";
$username = "root";
$password = "example";

try {
  $conn = new PDO("mysql:host=$servername;dbname=myDB", $username, $password);
  $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  
  $stmt = $conn->prepare("SELECT * FROM customers");
  $stmt->execute();
  
  $result = $stmt->fetchAll(PDO::FETCH_ASSOC);
  print_r($result);
} catch(PDOException $e) {
  echo "Connection failed: " . $e->getMessage();
}
?>

Dalam contoh ini, kami menggunakan PDO untuk menyambung ke bekas pangkalan data bernama db dan melaksanakan pertanyaan mudah. Anda boleh mengubah suai dan mengembangkannya mengikut situasi sebenar.

Kesimpulan:
Dengan menggunakan alatan seperti Docker Compose, Nginx dan MariaDB, kami boleh membina persekitaran aplikasi PHP berprestasi tinggi dan melakukan penalaan dalam talian. Artikel ini menyediakan contoh kod khusus untuk membimbing pelaksanaan praktikal. Semoga contoh ini akan membantu anda mengoptimumkan dan menambah baik aplikasi PHP anda, meningkatkan prestasi dan pengalaman pengguna.

Atas ialah kandungan terperinci Penalaan dalam talian aplikasi PHP melalui 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