docker-compose根据nginx反向代理wordpre
1)docker-compose
version: '3'
services:
mysql:
image: mysql:latest
restart: always
environment:
- MYSQL_ROOT_PASSWORD=rootpassword
- "TZ=Asia/Shanghai"
volumes:
- /root/docker/mysql:/var/lib/mysql
ports:
- 3306:3306
wp:
depends_on:
- mysql
image: wordpress:latest
volumes:
- /root/docker/wp:/var/www/html
restart: always
environment:
- VIRTUAL_HOST=www.wp.com,wp.com,img.wp.com
- WORDPRESS_DB_HOST=mysql:3306
- WORDPRESS_DB_USER=root
- WORDPRESS_DB_PASSWORD=rootpassword
- WORDPRESS_DB_NAME=wp
# 以下是nginx反向代理服务的配置
nginx-proxy:
image: jwilder/nginx-proxy
restart: always
ports:
- "80:80"
- "443:443" # ssl 默认是443端口,因此需要将443端口映射到宿主机上
volumes:
- /var/run/docker.sock:/tmp/docker.sock:ro # 将宿主机的docker.sock绑定到nginx,这样,今后添加新的站点时,nginx将会自动发现站点并重启服务
- /root/docker/wp_certs:/etc/nginx/certs:ro # 将nginx中的证书目录,映射到宿主机中
2)申请免费SSL证书
3)在 /root/docker/wp_certs 下创建 key 和 crt
下载的证书文件xxx.key中的内容黏贴进来并保存
vim www.wp.com.key
下载的证书文件xxx.pem中的内容黏贴进来并保存
vim www.wp.com.crt
如果有多个子域名可以申请多个免费证书然后
vim img.wp.com.key
vim img.wp.com.crt