Rumah > pembangunan bahagian belakang > tutorial php > Penggunaan aplikasi PHP yang sangat tersedia dengan Docker Compose dan Nginx

Penggunaan aplikasi PHP yang sangat tersedia dengan Docker Compose dan Nginx

WBOY
Lepaskan: 2023-10-12 12:18:02
asal
783 orang telah melayarinya

通过Docker Compose和Nginx实现PHP应用程序的高可用部署

Penggunaan aplikasi PHP yang sangat tersedia melalui Docker Compose dan Nginx

Dalam pembangunan aplikasi web moden, ketersediaan yang tinggi merupakan faktor yang sangat penting. Dengan menggunakan Docker Compose dan Nginx, kami boleh mencapai penggunaan aplikasi PHP dengan ketersediaan tinggi dan memastikan aplikasi itu kekal tersedia apabila kegagalan berlaku.

Docker ialah platform kontena popular yang membungkus aplikasi dan kebergantungannya ke dalam bekas serba lengkap. Docker Compose menyediakan cara mudah untuk mentakrif dan menjalankan berbilang aplikasi kontena.

Nginx ialah pelayan web berprestasi tinggi dan pelayan proksi terbalik. Ia boleh mengedarkan trafik masuk ke beberapa pelayan bahagian belakang untuk pengimbangan beban.

Berikut ialah contoh pelaksanaan penggunaan aplikasi PHP yang sangat tersedia menggunakan Docker Compose dan Nginx:

Mula-mula, kami perlu mencipta fail docker-compose.yml untuk mentakrifkan aplikasi dan bekas Nginx kami. Dalam fail ini, kami boleh menentukan berbilang perkhidmatan, setiap perkhidmatan sepadan dengan bekas.

version: '3'
services:
  app1:
    build:
      context: .
      dockerfile: Dockerfile
    restart: always
  app2:
    build:
      context: .
      dockerfile: Dockerfile
    restart: always
  nginx:
    image: nginx
    ports:
      - "80:80"
    volumes:
      - ./nginx.conf:/etc/nginx/nginx.conf
    restart: always
Salin selepas log masuk

Dalam contoh ini, kami mencipta dua bekas aplikasi (app1 dan app2) dan bekas Nginx (nginx) pada masa yang sama. app1 dan app2 boleh menjadi aplikasi yang sama atau aplikasi yang berbeza untuk lebihan dan ketersediaan tinggi.

Seterusnya, kita perlu mencipta fail konfigurasi nginx.conf dan melekapkannya ke dalam bekas Nginx. Fail konfigurasi ini menggunakan Nginx sebagai pelayan proksi terbalik untuk mengagihkan trafik masuk antara dua bekas aplikasi.

http {
  upstream backend {
    server app1:8080;
    server app2:8080;
  }

  server {
    listen 80;

    location / {
      proxy_pass http://backend;
      proxy_set_header Host $host;
      proxy_set_header X-Real-IP $remote_addr;
    }
  }
}
Salin selepas log masuk

Dalam contoh ini, kami mengkonfigurasi alamat dan port dua bekas aplikasi sebagai pelayan dalam blok hulu Nginx. Kemudian, dalam blok pelayan utama, trafik proksi ke bahagian belakang.

Akhir sekali, kami perlu menulis fail Docker untuk membina bekas aplikasi kami. Fail Docker ini boleh disesuaikan dengan aplikasi khusus anda.

FROM php:7.4.15-fpm

WORKDIR /var/www/html

COPY . .

RUN chmod -R 755 storage

CMD ["php-fpm"]
Salin selepas log masuk

Dalam contoh ini, kami menggunakan imej PHP rasmi dan menetapkan direktori kerja kepada /var/www/html. Kami kemudian menyalin kod dan fail aplikasi ke dalam bekas dan menetapkan kebenaran yang sesuai. Akhir sekali, kami memulakan pelayan PHP-FPM menggunakan arahan php-fpm.

Selepas melengkapkan langkah di atas, kita boleh menggunakan arahan berikut untuk memulakan aplikasi PHP kami yang sangat tersedia:

docker-compose up -d
Salin selepas log masuk

Arahan ini akan memulakan semua bekas dan meletakkannya ke latar belakang.

Melalui langkah di atas, kami telah berjaya melaksanakan penggunaan aplikasi PHP dengan ketersediaan tinggi menggunakan Docker Compose dan Nginx. Kini, aplikasi kami akan dijalankan dalam berbilang bekas dan dimuatkan seimbang melalui Nginx.

Di atas hanyalah contoh mudah, anda boleh menyesuaikannya mengikut keperluan khusus anda. Dengan menggunakan Docker Compose dan Nginx, anda boleh mencapai penggunaan aplikasi PHP yang tersedia dengan mudah dan memastikan aplikasi anda kekal tersedia apabila kegagalan berlaku.

Atas ialah kandungan terperinci Penggunaan aplikasi PHP yang sangat tersedia dengan Docker Compose dan Nginx. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan