前言
在當(dāng)今互聯(lián)網(wǎng)環(huán)境中,網(wǎng)站安全性至關(guān)重要。本文將介紹如何利用Docker容器技術(shù)快速部署WordPress,并通過Nginx配置SSL證書實(shí)現(xiàn)HTTPS加密訪問,為您的網(wǎng)站提供安全保障。
準(zhǔn)備工作
- 已安裝Docker和Docker Compose的服務(wù)器
- 域名一個(gè)(用于申請(qǐng)SSL證書)
- 基本的Linux命令行操作知識(shí)
一、創(chuàng)建Docker Compose文件
首先創(chuàng)建一個(gè)docker-compose.yml
文件,定義WordPress和MySQL服務(wù):
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:
- "8000: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:
- "80:80"
- "443:443"
volumes:
- ./nginx.conf:/etc/nginx/nginx.conf
- ./cert:/etc/nginx/cert
depends_on:
- wordpress
volumes:
db_data:
wordpress_data:
二、配置Nginx反向代理
創(chuàng)建nginx.conf
配置文件,設(shè)置反向代理和SSL:
events {
worker_connections 1024;
}
http {
server {
listen 80;
server_name yourdomain.com;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
server_name yourdomain.com;
ssl_certificate /etc/nginx/cert/fullchain.pem;
ssl_certificate_key /etc/nginx/cert/privkey.pem;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers HIGH:!aNULL:!MD5;
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;
}
}
}
三、獲取SSL證書
推薦使用Let’s Encrypt免費(fèi)證書:
- 安裝Certbot工具
- 運(yùn)行命令申請(qǐng)證書:
certbot certonly --standalone -d yourdomain.com
- 將生成的證書文件(
fullchain.pem
和privkey.pem
)復(fù)制到./cert
目錄
四、啟動(dòng)服務(wù)
運(yùn)行以下命令啟動(dòng)所有服務(wù):
docker-compose up -d
五、完成WordPress安裝
- 訪問
https://yourdomain.com
- 按照WordPress安裝向?qū)瓿稍O(shè)置
- 建議在WordPress設(shè)置中將站點(diǎn)地址改為HTTPS
常見問題解決
- 證書續(xù)期問題:可以設(shè)置cron任務(wù)自動(dòng)續(xù)期
- 性能優(yōu)化:考慮添加緩存插件或配置Nginx緩存
- HTTP重定向循環(huán):檢查WordPress設(shè)置和Nginx配置
結(jié)語(yǔ)
通過Docker部署WordPress并配置Nginx SSL,不僅簡(jiǎn)化了部署流程,還提高了網(wǎng)站的安全性。這種方案易于維護(hù)和擴(kuò)展,適合個(gè)人博客和企業(yè)網(wǎng)站使用。隨著業(yè)務(wù)增長(zhǎng),您可以輕松擴(kuò)展更多服務(wù)或調(diào)整配置。