使用Hugo框架搭建博客的过程 - 部署
前言
完成前期的准备工作后,在部署阶段需要配置服务器或对象存储服务。
对象存储和服务器对比
对象存储平台
国内有阿里云OSS、腾讯COS、又拍云、七牛云等。国外有Github Pages、Netlify、Azure、Google等,其中Github Pages免费,但是有个说法:Github屏蔽百度爬虫,使用Github Pages的网站百度搜不到。
对象存储平台也可以做为Markdown图床,配合CDN,加快图片加载速度。
笔者的服务器是阿里家的,所以对象存储也用了阿里云OSS。
阿里云OSS部署参考
对象存储的配置非常简单,哈喽沃德先生的这篇文章已经很详细了,按照这篇文章可以完成上传操作。文章最后的“阅读全文”可以绕过,方法是在Chrome控制台的Network中找到readmore.js,右键Block request URL。
需要注意的是,上传的Bucket要设置为公共读权限,同时限制Refer,做好防盗链。
服务器
平时有使用VPS需求,可选择使用VPS。
对比
- 对象存储:
优点:便宜,不需要搭建环境。
缺点:流量费用,要考虑图床的防盗链。 - 服务器:
优点各种踩坑,可以提升技能。 - 费用:
对象存储平台不考虑流量费:7.2元/年。
阿里云服务器,学生党及年龄小于等于24岁:10元/月;不满足以上条件的个人:121元/月。 - 结论
对象存储上手简单,成本低。
服务器环境
不使用服务器部署的读者,可跳过这部分。
操作系统Ubuntu
更新安装源
apt update
修改hostname
hostnamectl --static set-hostname localhost
重启
安装软件
apt install git
apt install nginx
apt install rz
apt install unzip
SSH安全配置
- 安全组限制IP通过SSH远程登陆。如果使用Github Action安全组无法限制,Github Action的服务器部署在Azure上,官方文档中包含几万行IP段,不适合做限制。
- 修改22端口。由于第一个原因,只能修改端口。否则Massscan3分钟全网段扫描,触发SSH口令暴力破解,几乎每天都有告警。注意!修改之后,确定其他端口可以登陆再关闭22端口。
- 配置SSH key避免执行*git*命令时用户密码验证。
Nginx配置
root权限启动。避免前端访问403的问题。/etc/nginx/nginx.conf中启动配置的用户与实际启动nginx的用户需要保持一致,可修改为低权限用户启动。
如果Nginx版本存在漏洞,以root权限启动,存在被拿到root权限的风险。
配置 /etc/nginx/nginx.conf
...
include /etc/nginx/conf.d/*.conf;
# 注释下面这行。如果sites-enabled/路径下存在默认配置文件,可能覆盖/etc/nginx/conf.d/default.conf配置
# include /etc/nginx/sites-enabled/*;
...
配置 /etc/nginx/conf.d/default.conf配置
server {
listen 80;
server_name www.xiaodejiyi.com xiaodejiyi.com; # 注意www和没有www都要配置
index index.html index.htm;
root /var/www/html/public;
location / {
root /var/www/html/public;
index index.html;
}
error_page 404 /404.html;
}
上传
将blog的public目录压缩为zip格式,使用rz命令上传到服务器上,unzip命令解压到Nginx配置的网站根目录中。
正常情况下,域名解析到CDN,CDN设置源站IP。到这一部可以访问域名,查看部署结果。如果blog配置未完成,可以先上传一张图片做测试。
参考
使用Hugo框架搭建博客的过程 - 部署的更多相关文章
- 使用Hugo框架搭建博客的过程 - 页面模板
前言 最初在制作友链界面时,没有学习Hugo框架,一头雾水.网上有关的教程甚少,只能去学一遍Hugo. 在学习Hugo的过程中,了解了列表模板,分类模板.开发了几个功能页面,如:留言板,友链,记忆分类 ...
- 使用Hugo框架搭建博客的过程 - 前期准备
前言 这篇教程介绍了如何搭建这样效果的博客. 所需步骤 可以从这样的角度出发: 注册域名. 使用CDN加快网站访问速度. 网站内容需要部署在服务器或对象存储平台上. 重要的是放什么内容.博客需要选择框 ...
- 使用Hugo框架搭建博客的过程 - 功能拓展
前言 本文介绍一些拓展功能,如文章页面功能增加二级菜单,相关文章推荐和赞赏.另外,使用脚本会大大简化写作后的上传流程. 文章页面功能 这部分功能的拓展主要是用前端的JS和CSS,如果对前端不了解,可以 ...
- 使用Hugo框架搭建博客的过程 - 主题配置
前言 博客部署完成后,恭喜你可以发表第一篇:Hello world!但是LoveIt这么好用的主题,不配置一番可惜了. 基本功能配置 主题配置最好参考已有的配置,比如LoveIt作者写的介绍,还有主题 ...
- 使用Hexo框架搭建博客,并部署到github上
开发背景:年后回来公司业务不忙,闲暇时间了解一下node的使用场景,一篇文章吸引了我15个Nodejs应用场景,然后就被这个hexo框架吸引了,说时迟,那时快,赶紧动手搭建起来,网上找了好多资料一天时 ...
- 用 Hugo 快速搭建博客
用 Hugo 搭建博客 Hugo 是一个用 Go 编写的静态站点生成器,生成速度很快 下面是具体操作: 1.安装 Hugo Windows 用户 使用 Chocolatey 或者 Scoop 快速安装 ...
- 在Windows下使用Hexo+GithubPage搭建博客的过程
1.安装Node.js 下载地址:传送门 去 node.js 官网下载相应版本,进行安装即可. 可以通过node -v的命令来测试NodeJS是否安装成功 2.安装Git 下载地址:传送门 去 Git ...
- Hugo hexo 搭建博客系列1:自己的服务器
hexo jekyll https://hexo.io/zh-cn/ http://theme-next.iissnan.com/getting-started.html Hexo 是高效的静态站点生 ...
- hugo + nginx 搭建博客记录
作为一个萌新Gopher,经常逛网站能看到那种极简的博客,引入眼帘的不是花里胡哨的图片和样式,而是黑白搭配,简简单单的文章标题,这种风格很吸引我.正好看到煎鱼佬也在用这种风格的博客,于是卸载了我的wo ...
随机推荐
- Navigation DialogFragment展示dialog
如果按照一般fragment的写法: 在nav_config中 <fragment android:id="@+id/fragment_crime_detail" andro ...
- Django部署uwsgi 与 nginx配置
1.nginx文件的配置 路径:/etc/nginx/conf.d/ example.conf 启动:service nginx [start]/[restart]/[stop] upstream d ...
- Manjaro Linux安装singularity-container
技术背景 容器化技术在各种生产领域已经得到了广泛的应用,这得益于容器的轻量化(相比于虚拟机而言),安全性(隔离弱于虚拟机,但是权限控制得当的情况下也可以认为是安全隔离的)以及系统级虚拟化带来的高可用性 ...
- Ajax|看这一篇就够了!详解Ajax工作原理及开发步骤
传统开发的缺点,是对于浏览器的页面,全部都是全局刷新的体验.如果我们只是想取得或是更新页面中的部分信息那么就必须要应用到局部刷新的技术. 局部刷新也是有效提升用户体验的一种非常重要的方式. Ajax技 ...
- windows使用attrib来简单隐藏文件
效果如下: 详细命令说明: ATTRIB [+R | -R] [+A | -A] [+S | -S] [+H | -H] [+O | -O] [+I | -I] [+X | -X] [+P | -P] ...
- TVM性能评估分析(四)
TVM性能评估分析(四) Figure 1. Efficient Privacy-Preserving ML Using TVM Figure 2. Motivation: Privacy-Pre ...
- TensorFlow编程结构
TensorFlow编程结构 TensorFlow 与其他编程语言非常不同. 首先通过将程序分为两个独立的部分,构建任何拟创建神经网络的蓝图,包括计算图的定义及其执行.起初这对于传统程序员来说看起来很 ...
- CUDA 8的混合精度编程
CUDA 8的混合精度编程 Volta和Turing GPU包含 Tensor Cores,可加速某些类型的FP16矩阵数学运算.这样可以在流行的AI框架内更快,更轻松地进行混合精度计算.要使用Ten ...
- 二、Nginx 服务器升级
1,编译新版本的nginx 软件 [root@client lnmp_soft]# tar -xf nginx-1.12.2.tar.gz -C .. [root@client lnmp_soft ...
- 【VBA】类型转换
每个函数都可以强制将一个表达式转换成某种特定数据类型. 语法 CBool(expression) CByte(expression) CCur(expression) CDate(expression ...