使用Git部署Hugo静态博客到VPS上
文章目录
预先准备
- 一台VPS,可见如何购买VPS及购买后的安全措施
- 一个DNS解析到VPS的域名,可见如何拥有一个域名
- 本地搭建好的Hugo博客,可见极简Hugo搭建个人博客笔记
- 使用Nginx作为网站服务器,可见Install Nginx Ubuntu16.04
如果一切就绪,那让我们现在开始吧~
Git部署
|
|
ssh登录到VPS,我们需要修改Nginx配置文件,在目录/etc/nginx/nginx.conf
下,以sudo权限修改,找到http段,修改以下项:
|
|
将include /etc/nginx/sites-enabled/*;注释掉,否则网站的默认目录会是/var/www/html,而不是/usr/share/nginx/html了。
既然是使用Git完成博客的部署,VPS上首先应先安装Git,此处略过。依次执行:
|
|
|
|
关于git hook的工作原理,可以查看自定义 Git - Git 钩子。
保存文件后添加可执行权限sudo chmod +x post-receive
,每当blog仓库有push更新,Git钩子可以自动将更新拷贝到先前设置的Nginx网站目录中去,使网站内容更新。我们还需要修改网站文件夹/usr/nginx/html的所有权为你所拥有:sudo chown your_user:your_user /usr/share/nginx/html
。
本地仓库建立
在博客的public目录下:
|
|
以上便完成了Hugo在VPS上的部署,下面我们更进一步,为自己的网站添加HTTPS支持。
添加网站HTTPS化,Let’s Encrypt!
前言
Let’s Encrypt是一个于2015年三季度推出的数字证书认证机构,旨在以自动化流程消除手动创建和安装证书的复杂流程,并推广使万维网服务器的加密连接无所不在,为安全网站提供免费的SSL/TLS证书。–wikipedia
第一步,安装Certbot
Certbot是Let’s Encrypt推出的自动化配置工具,我们通过添加官方源来下载它。
|
|
先前我们已经设置了Nginx所要配置的网站域名,可以通过以下命令查看有没有配置错误。
|
|
第二步,调整防火墙设置
|
|
第三步,获取SSL证书
|
|
Certbot使用nginx插件,选项-d指定需要使用SSL证书的域名。一路回车,输入联系邮件地址,Certbot工具会自动完成证书的注册和部署。之后再重新打开网站,应该就会看到网站首部的绿色安全标记了。
确认Certbot自动更新
Let’s Encrypt只有三个月的有效期,这时为了督促用户及时更新网站的安全设置而考虑的。Certbot工具在/etc/cron.d/目录下设置了自动任务,可以以一天两次的频率确保证书不过期,我们来测试一下自动更新。
|
|
一切顺利的话将会看到模拟自动更新成功。如果当后续的自动更新失败的话,Let’s Encrypt会向我们先前设置的邮箱地址发一封警告邮件,至此,网站的HTTPS化完成。