使用Docker Compose、Nginx和MariaDB建構彈性的PHP應用程式架構

WBOY
發布: 2023-10-12 11:04:01
原創
507 人瀏覽過

使用Docker Compose、Nginx和MariaDB构建弹性的PHP应用程序架构

使用Docker Compose、Nginx和MariaDB建構彈性的PHP應用程式架構

隨著雲端運算和容器化技術的發展,建構彈性的應用程式架構變得更加重要。在本文中,我們將介紹如何使用Docker Compose、Nginx和MariaDB來建立一個彈性的PHP應用程式架構,並提供具體的程式碼範例。

  1. 安裝Docker和Docker Compose
    首先,我們需要在本機上安裝Docker和Docker Compose。 Docker是一種輕量級的容器化平台,可以幫助我們建置和管理容器,而Docker Compose是一個工具,可以讓我們透過一個單獨的設定檔定義和執行多個Docker容器。請根據您的作業系統類型,參考官方文件進行安裝和設定。
  2. 建立Docker Compose檔案
    接下來,我們需要建立一個Docker Compose設定檔來定義我們的應用程式架構。在專案的根目錄下建立一個名為docker-compose.yml的文件,並新增以下內容:
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資料庫的密碼。

  1. 建立Nginx設定檔
    為了讓Nginx正常運作,我們需要建立一個Nginx設定文件,並將其掛載到web容器中。在專案的根目錄下建立一個名為nginx.conf的文件,並新增以下內容:
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埠。

  1. 寫PHP應用程式
    在code目錄中寫PHP應用程式的程式碼。這裡我們不會展示具體的PHP程式碼,您可以根據自己的需求來編寫PHP應用程序,重要的是將這些程式碼放置在code目錄下,以便與php容器共用。
  2. 啟動容器
    在專案的根目錄下開啟終端,執行下列指令啟動容器:
docker-compose up -d
登入後複製

這個指令將會根據docker-compose.yml檔案中的配置啟動和管理所有的容器。加上-d參數將使得容器在背景運行。

  1. 存取應用程式
    現在,您可以透過瀏覽器造訪http://localhost來存取您的PHP應用程式。 Nginx將會代理請求到php容器中執行的PHP應用程序,並將結果傳回瀏覽器。
  2. 擴展容器
    如果您的應用程式需要擴展,在Docker Compose中非常容易做到。您可以透過增加php容器的數量來處理更多的請求。只需修改docker-compose.yml檔案中的php服務,增加一個副本數量,如下所示:
  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中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!