前言
在當今互聯(lián)網(wǎng)環(huán)境中,使用 HTTPS 加密連接已成為網(wǎng)站運營的基本要求。本文將詳細介紹如何使用 Docker 快速部署 WordPress 并配置 HTTPS 安全連接,讓您的網(wǎng)站在保證性能的同時也具備安全性。
準備工作
在開始之前,請確保您的系統(tǒng)已安裝以下組件:
- Docker 最新版本
- Docker Compose
- 一個已解析到服務(wù)器 IP 的域名
步驟一:創(chuàng)建 Docker Compose 文件
首先創(chuàng)建一個 docker-compose.yml
文件,內(nèi)容如下:
version: '3'
services:
db:
image: mysql:5.7
volumes:
- db_data:/var/lib/mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: your_root_password
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: wordpress
wordpress:
depends_on:
- db
image: wordpress:latest
ports:
- "80:80"
restart: always
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: wordpress
WORDPRESS_DB_NAME: wordpress
volumes:
- wordpress_data:/var/www/html
nginx:
image: nginx:latest
ports:
- "443:443"
volumes:
- ./nginx.conf:/etc/nginx/nginx.conf
- ./certbot/conf:/etc/letsencrypt
- ./certbot/www:/var/www/certbot
depends_on:
- wordpress
certbot:
image: certbot/certbot
volumes:
- ./certbot/conf:/etc/letsencrypt
- ./certbot/www:/var/www/certbot
command: certonly --webroot --webroot-path=/var/www/certbot --email your@email.com --agree-tos --no-eff-email -d yourdomain.com
volumes:
db_data:
wordpress_data:
步驟二:配置 Nginx 反向代理
創(chuàng)建 nginx.conf
文件,配置 HTTPS 反向代理:
events {
worker_connections 1024;
}
http {
server {
listen 443 ssl;
server_name yourdomain.com;
ssl_certificate /etc/letsencrypt/live/yourdomain.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/yourdomain.com/privkey.pem;
location / {
proxy_pass http://wordpress:80;
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;
}
}
server {
listen 80;
server_name yourdomain.com;
return 301 https://$host$request_uri;
}
}
步驟三:獲取 SSL 證書
- 首先啟動 WordPress 和數(shù)據(jù)庫服務(wù):
docker-compose up -d db wordpress
- 等待 WordPress 初始化完成后,運行 Certbot 獲取證書:
docker-compose run --rm certbot
- 證書獲取成功后,啟動完整的服務(wù):
docker-compose up -d
步驟四:配置 WordPress
- 訪問
https://yourdomain.com
完成 WordPress 的初始設(shè)置 - 在 WordPress 后臺”設(shè)置”→”常規(guī)”中,確保 WordPress 地址和站點地址都使用 HTTPS
- 安裝 “Really Simple SSL” 插件確保所有資源都通過 HTTPS 加載
證書自動續(xù)期
SSL 證書每90天需要續(xù)期,可以設(shè)置一個 cron 任務(wù)自動續(xù)期:
0 0 * * * docker-compose run --rm certbot renew && docker-compose exec nginx nginx -s reload
常見問題解決
- 證書申請失敗:檢查域名是否正確解析到服務(wù)器,80端口是否開放
- 混合內(nèi)容警告:確保 WordPress 設(shè)置和插件配置正確
- 性能問題:可以考慮添加 Redis 或 Memcached 作為對象緩存
總結(jié)
通過 Docker 部署 WordPress 并配置 HTTPS,不僅簡化了安裝過程,還提高了安全性。Nginx 作為反向代理提供了更好的性能和安全性,而 Certbot 則簡化了 SSL 證書的管理。這種架構(gòu)適合大多數(shù)中小型網(wǎng)站,既保持了靈活性又具備企業(yè)級的安全特性。