之前不是整了个京东云服务器嘛,恰好之前部署wordpress AI导航网站的免费主机空间彻底歇菜了,就想把网站迁移到云服务器上,这次就来分享下如何在云服务器上使用 Docker Compose 安装 WordPress,并通过 Nginx 反向代理配置域名和 SSL 证书。 想知道最近有哪些好用的ai工具,可以来AI工具资源导航站看看(aitoolhub.top),1000多种AI工具,基本所有方向都涵盖了。 有需要服务器可以看看京东的50/年,2核2g,3.cn/1ZQQ-cfE 用起来还挺舒服的。
前置条件
- 一个已配置的云服务器(如 AWS EC2、DigitalOcean Droplet 等)
- 已安装 Docker 和 Docker Compose
- 一个域名,并且可以访问域名的 DNS 设置
步骤概述
- 安装 Docker 和 Docker Compose
- 创建 Docker Compose 配置文件
- 配置 Nginx 反向代理
- 获取并配置 SSL 证书
- 更新 WordPress 设置
1. 安装 Docker 和 Docker Compose
可以看这里:安装 Docker 和 Docker Compose
2. 创建 Docker Compose 配置文件
在你的项目目录下创建 docker-compose.yml 文件,并添加以下内容:
version: '3.8'
services:
db:
image: mysql:5.7
volumes:
- db_data:/var/lib/mysql
ports:
- "3307:3306"
restart: unless-stopped
environment:
MYSQL_ROOT_PASSWORD: example_root_password
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: example_password
wordpress:
image: wordpress:latest
depends_on:
- db
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: example_password
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
- ./certbot/conf:/etc/letsencrypt
- ./certbot/www:/var/www/certbot
depends_on:
- wordpress
restart: unless-stopped
volumes:
db_data:
wordpress_data:
3. 配置 Nginx 反向代理
在项目根目录下创建 nginx.conf 文件,并添加以下内容:
server {
listen 80;
server_name yourdomain.com www.yourdomain.com;
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;
}
location /.well-known/acme-challenge/ {
root /var/www/certbot;
}
}
server {
listen 443 ssl;
server_name yourdomain.com www.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;
}
}
将 yourdomain.com 替换为你的实际域名。
4. 获取并配置 SSL 证书
创建 Certbot 所需的目录
在项目根目录下创建 certbot 目录结构:
mkdir -p certbot/conf certbot/www
使用 Certbot 获取 SSL 证书
运行以下命令使用 Certbot 获取 SSL 证书:
docker run -it --rm --name certbot \
-v "$(pwd)/certbot/conf:/etc/letsencrypt" \
-v "$(pwd)/certbot/www:/var/www/certbot" \
certbot/certbot certonly --webroot --webroot-path=/var/www/certbot \
--email your-email@example.com --agree-tos --no-eff-email \
-d yourdomain.com -d www.yourdomain.com
将 your-email@example.com 替换为你的实际邮箱地址,将 yourdomain.com 和 www.yourdomain.com 替换为你的实际域名。
5. 重新启动 Docker Compose 服务
docker-compose down
docker-compose up -d
6. 更新 WordPress 设置
登录到你的 WordPress 管理后台,更新 设置 > 常规 中的 WordPress 地址 (URL) 和 站点地址 (URL) 为你的域名(如 http://yourdomain.com 或 https://yourdomain.com)。
至此,你已经成功在云服务器上使用 Docker Compose 安装了 WordPress,并配置了 Nginx 反向代理和 SSL 证书。如果有任何问题或需要进一步的帮助,请在评论区留言。