首页
/ 使用HTTPS-PORTAL安全部署WordPress的Docker Compose配置指南

使用HTTPS-PORTAL安全部署WordPress的Docker Compose配置指南

2025-07-08 06:36:30作者:蔡丛锟

前言

在现代Web应用部署中,安全性是首要考虑因素之一。HTTPS-PORTAL是一个基于Docker的解决方案,能够轻松地为您的应用添加HTTPS支持。本文将详细解析如何使用HTTPS-PORTAL配合Docker Compose来安全地部署WordPress网站。

核心组件概述

这个Docker Compose配置主要包含三个关键服务:

  1. HTTPS-PORTAL:作为反向代理和SSL终端,负责处理HTTPS连接
  2. WordPress:流行的内容管理系统
  3. MariaDB:MySQL兼容的关系型数据库,用于存储WordPress数据

详细配置解析

HTTPS-PORTAL服务配置

https-portal:
  image: steveltn/https-portal:1
  ports:
    - 80:80
    - 443:443
  links:
    - wordpress
  restart: always
  environment:
    DOMAINS: 'https-portal-test.steveltn.me -> http://wordpress'
    STAGE: production
  volumes:
    - https-portal-data:/var/lib/https-portal

关键配置说明:

  • ports:映射主机80和443端口,分别处理HTTP和HTTPS请求
  • restart: always:确保服务在失败或主机重启后自动恢复
  • DOMAINS:定义域名映射规则,将指定域名转发到WordPress容器
  • STAGE:设置Let's Encrypt证书环境(生产或测试)
  • volumes:持久化存储SSL证书等数据

WordPress服务配置

wordpress:
  image: wordpress
  environment:
    WORDPRESS_DB_HOST: db:3306
    WORDPRESS_DB_NAME: wordpress
    WORDPRESS_DB_PASSWORD: '<a secure password>'
    WORDPRESS_DB_USER: wordpress
  links:
    - db:mysql

关键配置说明:

  • 使用官方WordPress镜像
  • 通过环境变量配置数据库连接信息
  • 链接到数据库服务

MariaDB数据库配置

db:
  image: mariadb
  environment:
    MYSQL_DATABASE: wordpress
    MYSQL_PASSWORD: wordpress
    MYSQL_ROOT_PASSWORD: '<a secure password>'
    MYSQL_USER: wordpress
  volumes:
    - db-data:/var/lib/mysql

关键配置说明:

  • 使用MariaDB镜像(MySQL兼容)
  • 配置数据库用户、密码和默认数据库
  • 使用卷持久化存储数据库数据

部署注意事项

  1. 协议问题:最新版WordPress可能不识别HTTPS-PORTAL发送的X_FORWARDED_PROTO头,需要额外配置解决协议错误

  2. 安全密码:配置文件中使用<a secure password>占位符,实际部署时应替换为强密码

  3. 证书获取

    • 默认使用Let's Encrypt的测试服务器(有速率限制)
    • 生产环境应取消STAGE: production的注释
  4. 域名配置:将示例域名https-portal-test.steveltn.me替换为您自己的域名

部署步骤

  1. 创建docker-compose.yml文件,填入上述配置
  2. 修改配置中的密码和域名信息
  3. 运行docker-compose up -d启动服务
  4. 根据WordPress的安装向导完成初始化设置

持久化存储

配置中定义了两个卷:

  • https-portal-data:存储SSL证书和HTTPS-PORTAL相关数据
  • db-data:存储MariaDB数据库文件

这确保了即使容器重启,证书和数据库内容也不会丢失。

总结

通过这个Docker Compose配置,您可以快速部署一个安全的WordPress网站,具有以下优势:

  • 自动获取和管理Let's Encrypt SSL证书
  • 数据库和证书数据持久化存储
  • 服务自动恢复机制
  • 清晰的容器间通信配置

这种部署方式特别适合需要快速搭建安全WordPress网站的场景,同时保持了Docker部署的灵活性和可移植性。