當前位置: 首頁> 最新文章列表> 利用Docker Compose與Nginx實現PHP應用的高可用負載均衡部署

利用Docker Compose與Nginx實現PHP應用的高可用負載均衡部署

M66 2025-08-04

通過Docker Compose和Nginx實現PHP應用的高可用部署

在現代Web應用開發中,高可用性是關鍵需求之一。借助Docker Compose和Nginx,我們能夠輕鬆實現PHP應用的高可用部署,保障應用在遇到故障時依然穩定可用。

Docker作為領先的容器化平台,能將應用及其依賴封裝在獨立容器中。 Docker Compose則簡化了多容器應用的定義與管理過程。

Nginx不僅是高性能的Web服務器,更是廣泛使用的反向代理服務器,它能將請求流量分發到多個後端服務器,實現負載均衡,提升整體系統的可用性和性能。

定義Docker Compose服務

首先,需要創建一個docker-compose.yml文件,用來定義多個應用實例和Nginx容器。示例配置如下:

 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

在此配置中, app1app2為兩個PHP應用容器,可運行相同或不同版本的應用,實現冗餘。 Nginx容器負責接收流量並進行負載均衡。

Nginx負載均衡配置

創建並掛載一個nginx.conf配置文件到Nginx容器,配置示例如下:

 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;
    }
  }
}

該配置定義了一個名為backend的upstream,包含兩個應用服務器地址。 Nginx接收請求後,將流量分配到這兩個PHP應用容器,實現負載均衡。

構建PHP應用容器鏡像

根據實際需求編寫Dockerfile,示例內容如下:

 FROM php:7.4.15-fpm

WORKDIR /var/www/html

COPY . .

RUN chmod -R 755 storage

CMD ["php-fpm"]

此Dockerfile基於官方PHP鏡像,設置工作目錄,複製應用代碼並配置目錄權限,最終啟動php-fpm服務。

啟動高可用PHP應用

完成配置後,使用以下命令啟動所有容器:

 docker-compose up -d

該命令會在後台啟動定義的多個容器,使PHP應用通過Nginx進行負載均衡運行,實現高可用性。

總結

通過Docker Compose和Nginx,我們成功搭建了PHP應用的高可用部署環境。多容器架構和負載均衡機制確保應用在單點故障時依舊可用,並支持橫向擴展。

本文提供了基礎示例,您可根據實際需求進一步定製配置,實現更複雜的生產環境架構。