内容纲要
一、配置信息
Ubuntu 22.04 64位
2 核(vCPU)
2 GiB
10 Mbps
ESSD Entry 云盘 40 GiB
二、安装docker
三、拉取指定镜像文件
拉不到镜像文件的话,先尝试用国内的源去拉取镜像,失败的话,找一台国外的服务器拉取之后,scp传到本机,再由本机上传到部署的服务器。
1、mysql数据库
docker pull mysql:8.0
2、nginx代理工具
docker pull nginx:latest
3、redis缓存数据库
docker pull redis:alpine
4、wordpress博客
docker pull wordpress:6-apache
四、配置nginx工具
去阿里云申请域名绑定自己服务器的公网ip
去阿里云购买免费的ssl证书,并在部署的服务器上找一个路径存放
1、创建目录conf.d、ssl
在/etc/nginx目录或者docker-compose.yaml的平行目录下创建两个目录conf.d、ssl
mkdir /etc/nginx/conf.d
mkdir /etc/nginx/ssl
2、编辑https.conf
nano /etc/nginx/conf.d/https.conf
复制粘贴如下内容
limit_conn_zone $binary_remote_addr zone=perip:10m;
# 80端口自动跳转到HTTPS(最关键,解决不安全提示)
server {
listen 80;
server_name altairnexus.top;
return 301 https://$host$request_uri;
}
# HTTPS 443端口配置
server {
listen 443 ssl;
server_name altairnexus.top;
# 你的SSL证书路径(我已经帮你填好了!)
ssl_certificate /etc/nginx/ssl/altairnexus.top.pem;
ssl_certificate_key /etc/nginx/ssl/altairnexus.top.key;
# SSL安全配置
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4;
ssl_prefer_server_ciphers on;
# 代理到你的 WordPress
location / {
limit_conn perip 5; # 限制每个 IP 最多 5 个并发连接
limit_conn_status 429; # 超过限制返回 429 错误
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;
}
}
3、把申请的key和pem文件,放到/etc/nginx/ssl目录下
altairnexus.top.key
altairnexus.top.pem
五、配置docker-compose.yaml文件
version: '3'
services:
mysql:
image: mysql:8.0
container_name: wp-mysql
restart: always
volumes:
- ./mysql-data:/var/lib/mysql
environment:
MYSQL_ROOT_PASSWORD: ps@1234567
MYSQL_DATABASE: db_blog
MYSQL_USER: user1
MYSQL_PASSWORD: ps@123456
command:
- --default-authentication-plugin=mysql_native_password
networks:
- wp-net
redis:
image: redis:alpine
container_name: wp-redis
restart: always
# 可选:如果需要持久化数据,取消下面的注释
volumes:
- ./redis-data:/data
networks:
- wp-net
wordpress:
image: wordpress:6-apache
container_name: wp-blog
restart: always
depends_on:
- mysql
- redis # 1. 确保依赖 Redis
volumes:
- ./wp-html:/var/www/html
environment:
WORDPRESS_DB_HOST: mysql:3306
WORDPRESS_DB_NAME: db_blog
WORDPRESS_DB_USER: user1
WORDPRESS_DB_PASSWORD: ps@123456
WORDPRESS_CONFIG_EXTRA: |
define('WP_REDIS_HOST', 'redis');
define('WP_REDIS_PORT', 6379);
define('WP_CACHE', true);
define('WP_REDIS_PREFIX', 'wp_blog_');
APACHE_MAX_REQUEST_WORKERS: 20 # 限制同一瞬间最多 20 个并发请求
APACHE_MAX_CONNECTIONS_PER_CHILD: 5000 # 每个进程处理 5000 个请求后自动重启,防止内存泄漏
networks:
- wp-net
# ✅ 新增 Nginx 服务(HTTPS 关键)
nginx:
image: nginx:latest
container_name: wp-nginx
restart: always
ports:
- "80:80"
- "443:443"
volumes:
- /etc/nginx/conf.d:/etc/nginx/conf.d
- /etc/nginx/ssl:/etc/nginx/ssl
depends_on:
- wordpress
networks:
- wp-net
networks:
wp-net:
driver: bridge
六、后续必须的操作(让 WordPress 真正用上 Redis)
安装 Redis Object Cache 插件:进入 WordPress 后台,安装并启用 Redis Object Cache 插件。
验证连接:插件启用后,在 WordPress 后台的「设置 → Redis」页面,点击「Enable Object Cache」,然后查看连接状态是否显示「Connected」。