使用docker布署wordpress

环境准备

本博客使用docker环境搭建,从而作到布署简单html

  • 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开放程序端口为8080mysql

# 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.shlinux

# 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 便可nginx

关于网站安全

znb博客运行在阿里云主机上,配置上要注意如下几点:git

  • 安全组最小权限原则。 用到哪一个开哪一个,不要乱开端口
  • SSH必定要使用密钥,比密码安全的多
关于数据备份
  • 有条件能够使用阿里云的磁盘快照(会产生必定费用)
  • 若是不使用快照,则须要对数据库目录和wordpress程序目录进行备份