Rumah >pembangunan bahagian belakang >tutorial php >Optimumkan penggunaan aplikasi PHP menggunakan Nginx dan Docker Compose

Optimumkan penggunaan aplikasi PHP menggunakan Nginx dan Docker Compose

WBOY
WBOYasal
2023-10-12 11:01:571578semak imbas

使用Nginx和Docker Compose优化PHP应用程序的部署

Optimumkan penggunaan aplikasi PHP menggunakan Nginx dan Docker Compose

Pengenalan:
Dengan pembangunan aplikasi Internet dan Web, PHP, sebagai bahasa pengaturcaraan yang digunakan secara meluas, digunakan secara meluas untuk membina pelbagai laman web dan aplikasi . Walau bagaimanapun, kaedah penggunaan tradisional mungkin menghadapi beberapa cabaran, seperti konfigurasi persekitaran yang menyusahkan, konflik versi dan kesukaran dalam pengembangan kapasiti. Dalam kes ini, menggunakan Nginx dan Docker Compose boleh memudahkan proses penggunaan aplikasi PHP, meningkatkan produktiviti pembangun dan kestabilan aplikasi.

1. Kelebihan dan konfigurasi asas Nginx

Nginx ialah pelayan web berprestasi tinggi sumber terbuka dan pelayan proksi terbalik. Berbanding dengan pelayan Apache tradisional, Nginx mempunyai penggunaan memori yang lebih rendah, keupayaan pemprosesan serentak yang lebih tinggi dan prestasi yang lebih baik. Berikut ialah beberapa kelebihan Nginx:

  1. Prestasi tinggi: Nginx menggunakan seni bina dipacu peristiwa tidak menyekat tak segerak, yang boleh mengendalikan sejumlah besar sambungan serentak pada masa yang sama di bawah konfigurasi perkakasan yang lebih rendah, memberikan masa tindak balas yang lebih pantas.
  2. Proksi songsang: Nginx boleh digunakan sebagai pelayan proksi terbalik untuk mengedarkan permintaan pelanggan kepada berbilang pelayan aplikasi dalaman untuk meningkatkan pengimbangan beban dan prestasi keseluruhan.
  3. Kebolehpercayaan tinggi: Nginx mempunyai mod kerja yang stabil dan boleh dipercayai serta mekanisme pemulihan kegagalan automatik, yang boleh memastikan ketersediaan aplikasi yang berterusan.

Apabila melakukan konfigurasi asas Nginx, anda boleh mencipta fail nginx.conf yang mudah dan mengkonfigurasinya dengan sewajarnya, seperti yang ditunjukkan di bawah:

worker_processes  auto;
events {
    worker_connections  1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    server {
        listen       80;
        server_name  localhost;
        location / {
            root   /usr/share/nginx/html;
            index  index.php;
        }
        location ~ .php$ {
            root           /usr/share/nginx/html;
            fastcgi_pass   PHP_CONTAINER:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            include        fastcgi_params;
        }
    }
}

Dalam fail konfigurasi di atas, ia dikonfigurasikan untuk mendengar port 80 dan menentukan tapak web melalui root. Direktori akar dan nama pelayan ialah localhost. Apabila permintaan berakhir dengan .php, permintaan itu dimajukan ke bekas PHP bernama PHP_CONTAINER dan nama fail yang diminta dihantar ke bekas PHP untuk diproses.

2. Penggunaan dan contoh Docker Compose

Docker Compose ialah alat yang memudahkan penggunaan aplikasi kontena dan boleh mentakrifkan serta mengurus aplikasi dalam berbilang bekas. Docker Compose menggunakan fail YAML untuk mengkonfigurasi perhubungan dan parameter antara bekas dan menyediakan arahan mudah untuk mengurus bekas ini. Berikut ialah contoh fail docker-compose.yml:

version: '3'
services:
  web:
    build: .
    ports:
      - 80:80
    volumes:
      - .:/usr/share/nginx/html
    depends_on:
      - php

  php:
    build:
      context: .
      dockerfile: Dockerfile-php
    volumes:
      - .:/var/www/html

  db:
    image: mysql:5.7
    ports:
      - 3306:3306
    environment:
      MYSQL_ROOT_PASSWORD: password
      MYSQL_DATABASE: mydatabase

Dalam contoh di atas, kami mentakrifkan 3 perkhidmatan: web, php dan db. Perkhidmatan web menggunakan Dockerfile untuk membina bekas Nginx, memetakan direktori semasa hos ke direktori /usr/share/nginx/html bekas dan memetakan port 80 bekas ke port 80 hos. Perkhidmatan php menggunakan Dockerfile-php untuk membina bekas PHP dan memetakan direktori semasa hos ke direktori /var/www/html bekas. Perkhidmatan db menggunakan imej mysql:5.7 untuk membina bekas MySQL dan memetakan port 3306 kontena ke port 3306 hos.

3. Sepadukan aplikasi Nginx dan PHP ke dalam Docker Compose

Seterusnya, kita perlu mencipta fail Docker yang sepadan untuk membina bekas Nginx dan PHP. Berikut ialah contoh Dockerfile:

# 构建Nginx容器
FROM nginx:latest

# 将宿主机的配置文件复制到容器中
COPY nginx.conf /etc/nginx/conf.d/default.conf

# 定义容器启动时执行的命令
CMD ["nginx", "-g", "daemon off;"]

# 构建PHP容器
FROM php:7.4-fpm

# 安装PHP扩展和依赖库
RUN docker-php-ext-install pdo_mysql

# 定义容器启动时执行的命令
CMD ["php-fpm"]

Dalam contoh di atas Dockerfile, kami mula-mula membina bekas Nginx menggunakan nginx:imej terkini, salin fail konfigurasi hos ke bekas, dan kemudian gunakan imej php:7.4-fpm untuk membina Bekas PHP, dan memasang sambungan pdo_mysql dan beberapa perpustakaan bergantung lain.

4. Gunakan Docker Compose untuk menggunakan aplikasi PHP

Selepas melengkapkan konfigurasi dan definisi di atas, kami boleh menggunakan Docker Compose untuk menggunakan aplikasi PHP. Mula-mula, buat fail docker-compose.yml dalam direktori akar aplikasi dan salin kandungan daripada contoh di atas ke dalamnya. Kemudian, laksanakan arahan berikut pada baris arahan untuk membina dan memulakan bekas:

docker-compose build
docker-compose up -d

Arahan ini akan membina imej yang diperlukan dan memulakan bekas. Dengan mengakses http://localhost, anda boleh mengakses aplikasi PHP yang digunakan.

Ringkasan:
Menggunakan Nginx dan Docker Compose untuk mengoptimumkan penggunaan aplikasi PHP boleh memudahkan proses penggunaan, meningkatkan produktiviti pembangun dan kestabilan aplikasi. Nginx mempunyai banyak kelebihan sebagai pelayan web berprestasi tinggi dan pelayan proksi terbalik, dan Docker Compose, sebagai alat penggunaan untuk aplikasi kontena, boleh mengurus berbilang bekas dengan lebih mudah. Menggunakan aplikasi PHP dengan cara ini menjadikan proses pembangunan lebih cekap dan memudahkan untuk melanjutkan dan menyelenggara aplikasi.

Atas ialah kandungan terperinci Optimumkan penggunaan aplikasi PHP menggunakan Nginx dan Docker Compose. 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