利用 DaoCloud 和 Docker 一键搭建自己的 wordpress 博客站点

服务器

腾讯云, 阿里云, AWS, 自己的公网物理服务器都可以, 反正你得准备一台可以公网访问的服务器, 有公网 IP. 服务器的系统用 CentOS, CoreOS, REDHEAL, ubuntu 都没有太大关系, 如果你仅仅是用来搭建博客的话. 当然如果另有他用, 就建议好好选择系统啦.

注意: 各个服务器的防火墙(安全组)一定要配置好 , 打开常用的端口, 比如 80, 443, 22 等等

域名

自己去万网或者云平台购买一个域名, 然后做好备案( 这个过程比较长, 本文不做过多介绍, 当然你也可以不要域名, 用 IP 或者公共的第三方域名代替 ). 然后添加域名解析, 指向自己的 IP 即可.

A	@	默认	{你的 IP}
A	www	默认	{你的 IP}

Docker

如果你的服务器是 CoreOS 可以跳过这一步, CoreOS 原生支持 docker 如果不是请自行执行下面的命令一键安装

curl -sSL http://get.daocloud.io/docker | sh

注意: 安装好之后记得重新启动 docker 服务哟, 比如 centos 的命令是

service docker restart

DaoCloud

DaoCloud 是一个云管理平台, 可以很方便地管理你的远程主机和应用, 快去 注册 一个吧

然后把你的服务器添加到 DaoCloud 中来

按照提示的步奏, 在服务器上完成集成安装即可

安装博客站点

在 DaoCloud 中新建一个 stack, 填好名字和 yml 文件即可

YML 内容如下 (括号内的内容不要粘贴进去哦), 所有 docker image 的版本可以自行用最新的

wordpress:
  image: wordpress:4.7
  restart: always
  links:
  - db:mysql
  ports:
  - 192.168.0.1:8020:80
  volumes:
  - /alidata/data/blog-www:/var/www/html (冒号前的目录需要自行去服务器上创建)
db:
  image: mariadb:10.1.19
  restart: always
  volumes:
  - /alidata/data/blog-data:/var/lib/mysql(冒号前的目录需要自行去服务器上创建)
  environment:
  - MYSQL_ROOT_PASSWORD=yourmysqlpwd   (这是你数据库 MYSQL 的密码)
nginx:
  image: index.docker.io/library/nginx:1.11.6
  container_name: nginx-blog
  restart: always
  ports:
  - 80:80
  - 443:443
  volumes:
  - /alidata/data/nginx/vhosts:/etc/nginx/conf.d (冒号前的目录需要自行去服务器上创建)
  environment:
  - VIRTUAL_HOST=www.yourdomain.com (你的域名, 当然最后3行可以不写)
  - LETSENCRYPT_HOST=www.yourdomain.com
  - LETSENCRYPT_EMAIL=youremail@163.com

然后开始部署吧! 你的博客已经搭建好啦! 可以暂时通过 IP 访问了!

注意: docker 之间网络访问需要单独配置, 如果启动失败, 可以尝试将 192.168.0.1 换成 127.0.0.1 或者直接不绑定 IP 也可以哟, 然后 nginx 里面不想配置 docker 网络通信的话, 就用公网 IP 吧.

配置 Nginx 和 SSL

进入服务器, 来到目录/alidata/data/nginx/vhosts/, 新建一个 blog.conf 的文件

server {
    listen 80;
    server_name yourdomain.com www.yourdomain.com;
    
    location / {
        return 301 http://www.yourdomain.com$request_uri;
    }
}

server {
    listen 443 ssl;
    server_name www.yourdomain.com;
    ssl on;
    root html;
    index index.html index.htm;
    ssl_certificate   conf.d/cert/yourpemfile.pem;
    ssl_certificate_key  conf.d/cert/yourkeyfile.key;
    ssl_session_timeout 5m;
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_prefer_server_ciphers on;
    location / {
        proxy_pass http://192.168.0.1:8020;
        proxy_set_header Host            $host;
        proxy_set_header X-Forwarded-For $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;    
    }
}

请注意替换你自己的域名, 另外你需要把你的 ssl 证书上传到服务器上, 保存路径在/alidata/data/nginx/vhosts/cert/ 下. 别急, 下面会教你如何申请 ssl 证书

SSL 证书

阿里云的 ssl, 在 这里 可以申请免费1年的, 点击立即购买, 点击绑定一个域名, 选择赛门铁克, 然后购买即可

然后来到控制台, 补全资料, 提交审核即可, 审核完毕, 你就可以下载证书啦, 会得到 pem 和 key 2个文件, 按照上面的配置放入指定目录即可!

大功告成! 重启 nginx, 访问你的博客吧!

发表评论

您的电子邮箱地址不会被公开。 必填项已用 * 标注

Scroll to Top