使用docker布署wordpress
作者:互联网
环境准备
本博客使用docker环境搭建,从而做到布署简单
- centos7环境(centos6跑docker要升级内核,也不建议这样做)
- 在centos7上安装好docker环境docker安装文档
- 在centos7上安装好docker-composedocker-compose安装文档
- 在centos7上安装好nginx, 作为反向代理使用
编写docker-compose文件
下面是完整的docker-compose文件,文件描述的大意为下载并启动mysql和wordpress镜像文件,mysql数据目录挂载至本地/mnt/mysql目录下、wordpress程序目录挂载至本地/mnt/static目录下,wordpress开放程序端口为8080
# docker-compose.yml
version: '3.3'
services:
db:
image: mysql:5.7
volumes:
- /mnt/mysql:/var/lib/mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: **********
MYSQL_DATABASE: **********
MYSQL_USER: **********
MYSQL_PASSWORD: **********
wordpress:
depends_on:
- db
image: wordpress:latest
volumes:
- /mnt/static:/var/www/html
ports:
- "8080:80"
restart: always
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_USER: **********
WORDPRESS_DB_PASSWORD: **********
WORDPRESS_DB_NAME: **********
volumes:
db_data: {}
Nginx的配置
下图的配置中,nginx打开了https,使用的是Lets encrypt 有很多配套工具可以使用,我使用的是acme.sh
# wordpress.conf
upstream local {
server 127.0.0.1:8080;
}
server {
listen 80;
listen 443 ssl http2;
ssl_certificate ssl/fullchain.cer;
ssl_certificate_key ssl/zheaps.key;
server_name blog.zheaps.cn;
if ($scheme != "https") {
return 301 https://$host$request_uri;
}
location / {
proxy_set_header X-Forwarded-Proto https;
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_pass http://local;
}
}
启动程序
在docker-compose.yaml目录下执行docker-compose up -d 即可
关于网站安全
znb博客运行在阿里云主机上,配置上要注意以下几点:
- 安全组最小权限原则。 用到哪个开哪个,不要乱开端口
- SSH一定要使用密钥,比密码安全的多
关于数据备份
- 有条件可以使用阿里云的磁盘快照(会产生一定费用)
- 如果不使用快照,则需要对数据库目录和wordpress程序目录进行备份
标签:compose,ssl,wordpress,proxy,mysql,布署,docker 来源: https://www.cnblogs.com/hackcrack/p/12228605.html