在上一节我们讲解了如何通过Docker快速搭建wordpress,这一节我们介绍下在Docker环境下,有哪些工具和程序可以帮助你轻松绑定域名并管理多个站点。以下是几种常用的解决方案:
1. Nginx Proxy Manager
Nginx Proxy Manager 是一个基于 Nginx 的反向代理管理工具,提供友好的 Web 界面来管理域名绑定、SSL 证书等。
安装步骤
- 创建
docker-compose.yml
文件:version: '3' services: app: image: 'jc21/nginx-proxy-manager:latest' restart: always ports: - '80:80' - '81:81' - '443:443' volumes: - ./data:/data - ./letsencrypt:/etc/letsencrypt
- 启动容器:
docker-compose up -d
- 访问管理界面:
- 打开浏览器,访问
http://your-server-ip:81
。 - 默认登录信息:
- 邮箱:
[email protected]
- 密码:
changeme
- 邮箱:
- 打开浏览器,访问
- 在管理界面中添加域名和反向代理规则,绑定到你的 WordPress 容器。
2. Traefik
Traefik 是一个现代化的反向代理和负载均衡工具,专为容器化环境设计,支持自动发现 Docker 容器并绑定域名。
安装步骤
-
创建
docker-compose.yml
文件:version: '3' services: traefik: image: traefik:latest command: - --api.insecure=true - --providers.docker - --entrypoints.web.address=:80 ports: - '80:80' - '8080:8080' volumes: - /var/run/docker.sock:/var/run/docker.sock wordpress: image: wordpress:latest environment: - WORDPRESS_DB_HOST=mysql - WORDPRESS_DB_USER=root - WORDPRESS_DB_PASSWORD=your_password labels: - "traefik.http.routers.wordpress.rule=Host(`yourdomain.com`)" - "traefik.http.routers.wordpress.entrypoints=web"
- 启动容器:
docker-compose up -d
- 访问 Traefik 仪表板:
- 打开浏览器,访问
http://your-server-ip:8080
。
- 打开浏览器,访问
- 访问 WordPress:
- 打开浏览器,访问
http://yourdomain.com
。
- 打开浏览器,访问
3. Caddy
Caddy 是一个易于使用的 Web 服务器,支持自动 HTTPS 和反向代理。
安装步骤
-
创建
docker-compose.yml
文件:version: '3' services: caddy: image: caddy:latest ports: - '80:80' - '443:443' volumes: - ./Caddyfile:/etc/caddy/Caddyfile - ./caddy_data:/data wordpress: image: wordpress:latest environment: - WORDPRESS_DB_HOST=mysql - WORDPRESS_DB_USER=root - WORDPRESS_DB_PASSWORD=your_password
- 创建
Caddyfile
文件:yourdomain.com { reverse_proxy wordpress:80 }
- 启动容器:
docker-compose up -d
- 访问 WordPress:
- 打开浏览器,访问
https://yourdomain.com
(Caddy 会自动配置 HTTPS)。
- 打开浏览器,访问
4. Nginx + Let’s Encrypt(手动配置)
如果你更喜欢手动配置,可以使用 Nginx 和 Let’s Encrypt 结合 Docker 绑定域名。
安装步骤
-
创建
docker-compose.yml
文件:version: '3' services: nginx: image: nginx:latest ports: - '80:80' - '443:443' volumes: - ./nginx.conf:/etc/nginx/nginx.conf - ./certs:/etc/letsencrypt wordpress: image: wordpress:latest environment: - WORDPRESS_DB_HOST=mysql - WORDPRESS_DB_USER=root - WORDPRESS_DB_PASSWORD=your_password
-
创建
nginx.conf
文件:server { listen 80; server_name 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; } }
- 启动容器:
docker-compose up -d
- 使用 Certbot 获取 SSL 证书:
sudo certbot --nginx -d yourdomain.com
总结
- Nginx Proxy Manager:适合需要 Web 界面管理的用户。
- Traefik:适合动态容器环境,自动发现服务。
- Caddy:简单易用,自动 HTTPS。
- Nginx + Let’s Encrypt:适合需要完全手动配置的用户。
根据你的需求选择合适的工具即可轻松绑定域名。