服务器
腾讯云, 阿里云, 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, 访问你的博客吧!