使用Docker Compose、Nginx和MariaDB建構彈性的PHP應用程式架構
隨著雲端運算和容器化技術的發展,建構彈性的應用程式架構變得更加重要。在本文中,我們將介紹如何使用Docker Compose、Nginx和MariaDB來建立一個彈性的PHP應用程式架構,並提供具體的程式碼範例。
version: '3' services: web: image: nginx:latest restart: always ports: - 80:80 - 443:443 volumes: - ./nginx.conf:/etc/nginx/nginx.conf depends_on: - php php: image: php:latest restart: always volumes: - ./code:/var/www/html db: image: mariadb:latest restart: always environment: - MYSQL_ROOT_PASSWORD=root - MYSQL_DATABASE=app - MYSQL_USER=appuser - MYSQL_PASSWORD=apppassword
上述設定檔定義了三個服務:web、php和db。 web服務使用最新的Nginx鏡像,將80和443連接埠對應到主機上。 web服務也透過掛載本地的nginx.conf檔案到容器中來自訂Nginx的配置。 php服務使用最新的PHP鏡像,並透過掛載本地的code目錄到容器中來共享程式碼。 db服務使用最新的MariaDB鏡像,並設定了root使用者和app資料庫的密碼。
worker_processes auto; pid /run/nginx.pid; events { worker_connections 1024; } http { include /etc/nginx/mime.types; default_type application/octet-stream; server { listen 80; location / { proxy_pass http://php:80; proxy_set_header Host $host; } } }
上述設定檔指定了Nginx的工作進程數量,以及Nginx監聽的連接埠和代理程式規則。在這個範例中,Nginx將所有的請求代理到php容器中的80埠。
docker-compose up -d
這個指令將會根據docker-compose.yml檔案中的配置啟動和管理所有的容器。加上-d參數將使得容器在背景運行。
php: image: php:latest restart: always volumes: - ./code:/var/www/html scale: 3
上述配置將會建立3個php容器,每個容器都有相同的代碼和配置。這樣,當有更多的請求到來時,Docker Compose將自動地將請求分發到不同的php容器上,從而實現了擴展。
總結
本文介紹如何使用Docker Compose、Nginx和MariaDB建構一個彈性的PHP應用程式架構。透過使用Docker Compose,我們可以方便地定義和運行多個Docker容器,並透過Nginx實現請求的代理和負載平衡,透過MariaDB儲存應用程式的資料。我們也示範如何透過增加php容器的數量來擴展應用程式。希望這篇文章對您有所幫助,如果您有任何問題,請隨時提問。
以上是使用Docker Compose、Nginx和MariaDB建構彈性的PHP應用程式架構的詳細內容。更多資訊請關注PHP中文網其他相關文章!