在后浪云上使用Docker Compose部署WordPress

引言

WordPress作为全球最流行的内容管理系统(CMS),以其灵活性和易用性广泛应用于网站开发。使用Docker Compose可以在云服务器上快速部署WordPress,简化环境配置并提升可维护性。本文以后浪云VPS为例,介绍如何通过Docker Compose部署WordPress,结合NGINX反向代理和Let’s Encrypt SSL证书,确保安全高效的运行环境。

案例分析:后浪云上的个人博客部署

假设我们在后浪云HK-1H2G VPS(1核CPU、2GB DDR4内存、30GB SSD、1Mbps带宽,月费¥30)上部署一个个人博客,域名myblog.com已通过后浪云域名服务解析到VPS的公网IP。通过Docker Compose,我们快速搭建了WordPress和MariaDB容器,并配置了NGINX和HTTPS,确保了博客的安全访问。

技术原理:Docker Compose与WordPress

Docker Compose

Docker Compose是一个用于定义和运行多容器应用的工具,通过YAML文件描述服务、卷和网络配置。它简化了WordPress(PHP+Apache)和MariaDB的部署,自动管理容器间的依赖和通信。

NGINX反向代理

NGINX作为高性能Web服务器,可通过反向代理将请求转发到WordPress容器,同时支持SSL终止以启用HTTPS,提升安全性和性能。

Let’s Encrypt

Let’s Encrypt通过ACME协议提供免费SSL证书,结合Certbot工具实现自动化配置。HTTP-01验证适用于已解析域名的场景,确保快速部署。

实践指南:在后浪云VPS上部署WordPress

以下是在Ubuntu 20.04上使用Docker Compose部署WordPress的步骤,适用于后浪云VPS。

步骤1:安装Docker和Docker Compose

更新系统并安装Docker:

# 更新包列表
sudo apt update

# 安装依赖
sudo apt install -y apt-transport-https ca-certificates curl software-properties-common

# 添加Docker源
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

# 安装Docker
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io

# 启动并启用Docker
sudo systemctl start docker
sudo systemctl enable docker

安装Docker Compose:

# 下载最新版本
sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

# 设置权限
sudo chmod +x /usr/local/bin/docker-compose

# 验证安装
docker-compose --version

步骤2:创建Docker Compose配置文件

创建项目目录并配置docker-compose.yaml

# 创建目录
mkdir ~/wordpress
cd ~/wordpress

# 编辑配置文件
nano docker-compose.yaml

添加以下内容:

version: '3'
services:
  wordpress:
    image: wordpress:latest
    ports:
      - "8080:80"
    environment:
      WORDPRESS_DB_HOST: db
      WORDPRESS_DB_USER: wp_user
      WORDPRESS_DB_PASSWORD: securepassword123
      WORDPRESS_DB_NAME: wordpress_db
    volumes:
      - ./wp_data:/var/www/html
  db:
    image: mariadb:latest
    environment:
      MYSQL_DATABASE: wordpress_db
      MYSQL_USER: wp_user
      MYSQL_PASSWORD: securepassword123
      MYSQL_ROOT_PASSWORD: securepassword123
    volumes:
      - ./mariadb:/var/lib/mysql

启动容器:

# 启动容器
sudo docker-compose up -d

步骤3:安装并配置NGINX

安装NGINX:

sudo apt install -y nginx
sudo systemctl start nginx
sudo systemctl enable nginx

配置NGINX反向代理:

# 创建配置文件
sudo nano /etc/nginx/sites-available/wordpress

添加以下内容(替换myblog.com为实际域名):

server {
    listen 80;
    server_name myblog.com www.myblog.com;
    return 301 https://$host$request_uri;
}

server {
    listen 443 ssl;
    server_name myblog.com www.myblog.com;
    ssl_certificate /etc/letsencrypt/live/myblog.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/myblog.com/privkey.pem;
    location / {
        proxy_pass http://localhost:8080;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

启用配置并重载:

sudo ln -s /etc/nginx/sites-available/wordpress /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx

步骤4:配置Let’s Encrypt SSL

安装Certbot:

sudo apt install -y certbot python3-certbot-nginx

获取证书:

sudo certbot --nginx -d myblog.com -d www.myblog.com

按提示输入邮箱并同意条款。Certbot自动配置NGINX以启用HTTPS。

测试自动续期:

sudo certbot renew --dry-run

步骤5:完成WordPress安装

访问https://myblog.com,进入WordPress安装界面,配置管理员账户和站点信息。

步骤6:验证部署

检查容器状态:

sudo docker-compose ps

确认HTTPS访问正常,确保博客页面加载正确。

技术对比:Docker Compose vs. 手动部署

  • Docker Compose:自动化容器管理,适合后浪云VPS(如HK-1H2G)的快速部署,简化依赖配置。
  • 手动部署:灵活但配置复杂,需手动安装PHP、MySQL和NGINX,适合特定定制需求。

在案例中,Docker Compose显著降低了部署时间。

技术经验分享

通过在后浪云VPS上部署WordPress,我们快速上线了个人博客。以下是关键经验:

  • 高性能支持:后浪云的SSD存储(HK-1H2G)加速了容器启动和数据访问。
  • DNS效率后浪云域名服务确保快速解析,提升用户体验。
  • 自动化续期:Certbot的自动续期任务简化了证书管理。
  • 容器隔离:Docker Compose提供隔离环境,增强了安全性。

进一步资源可参考Docker Compose文档或后浪云技术支持

总结

通过Docker Compose和NGINX,我们在后浪云VPS上高效部署了WordPress,结合Let’s Encrypt实现了安全的HTTPS访问。借助后浪云的高性能硬件和可靠域名服务,开发者和系统管理员可快速构建安全、稳定的Web应用。

THE END