经过差不多一个月的折腾,终于成功拥有了自己的博客网站了,不容易不容易……
然而回想过来,完全没有博客时的期待和动力是最足的,真正申请下来域名、搭建起来服务后,反而莫名不想写内容了所以这个记录其实拖了一两个星期……

得不到的永远在骚动吧,陈奕迅唱得好。

本文内容将分为硬配置(买、登记等,和代码无关项目)和软配置(服务器配置、博客框架选型等和代码相关的项目)。

想要搭建一个博客网站,粗理了下,大致需要会以下内容:

  1. Linux基础知识,用于使用和管理ECS服务器
  2. Nginx或其他服务器相关知识,用于服务器代理端口,实现可访问网站
  3. Git相关知识,方便后期更新网页。也可以不用,不过用scp或者lrzsz更新会较麻烦

硬配置

分为硬配置,其实就是买ECS服务器、购买域名、域名备案、HTTPS证书申请这些事项。总的来说搭个简单的博客也不是那么花钱,就是比较耗时耗力罢了。

要有个自己的网站,需要有1.数据内容 2.域名

数据内容我们先按下不表,域名则需要购买,并要一个固定IP的服务器用于映射。

域名最好接入HTTPS,固定IP的服务器就选用ECS服务器。

以上这些我全在阿里云上完成。

ECS服务器

首先在阿里云官网去购买ECS服务器。

用来做博客网站,选最便宜的入门级服务器,系统选择Ubuntu。一定要看看是否有购买活动页,相当便宜,我这里选择的t5实例一年才上百。

image-20200621225743518

购买好服务器后,进入管理页配置密码等,拿公网ip即可通过ssh登录。

1
ssh root@yourserverip

image-20200621230408080

域名

国内购买的域名都需要进行备案。

域名没有服务器贵(指一般情况下,如果你选个很火的域名就很贵了)。

申请好域名后,一定要在阿里云上进行备案。我在过这个流程时大概等待了两三周左右。下个阿里云APP,搜备案即可进行网站备案。要说下当前已经比过去简便,以前看到的建站教程里都还有邮寄接收幕布进行备案拍照,现在完全通过手机拍照核对就行了。备案期间会有阿里客服和工信部进行确认,说明即可。

备案完毕后,接下来是申请Https证书,这个也在阿里云上有相关方案,有免费证书可用,申请了需要一天时间机器自动校验。

软配置

接下来就是软件相关的了。

我使用的建站方案是Nginx+hugo

HUGO

Go语言写的博客框架,Hugo官网。生成速度很快很方便。遗憾的是本地化内容较少,中文资料较为零碎,不过官方的Quick Start写得挺好,很容易上手;另一个遗憾是主题比较难找,官网的Themes没有下载量排序的功能,网上搜又杂七杂八的,新手很难找到自己想要的主题,找到了也不知道怎么用。

这里我使用的是从Hexo移植过来的Even主题。把官网quick start中的下载主题步骤里的主题替换成even的地址即可。

image-20200621232239193

1
2
3
cd quickstart
git init
git submodule add https://github.com/olOwOlo/hugo-theme-even themes/even # 替换为even

写好的博客通过命令行里输入Hugo,就能生成静态文件了。文件会生成在public文件夹,接下来就是Nginx代理了。

Nginx

服务器上默认是没有Nginx的,需要我们自己装一个。

1
apt install nginx-full

安装nginx-full的原因是其自带了很多子模块,这样就不用后期发现Nginx缺失东西折腾了。

以下Nginx的相关项目,不同Linux系统的配置文件位置、启动方法可能有些许不同。

1
2
3
4
5
6
7
8
9
/etc/nginx/nginx.conf # 默认配置地址
/etc/nginx/sites-enabled/default # 默认加载的网页地址
/var/log/nginx/access.log # 默认请求log地址,所有请求的log都会在这里
/var/log/nginx/error.log # 默认错误log地址,所有错误的log都会在这里

systemctl start nginx # 启动nginx
systemctl reload nginx # 重新加载nginx
systemctl restart nginx # 重启nginx
systemctl stop nginx # 关闭nginx

贴一下我配置的https配置方案:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
server {
	listen 443 ssl;
	root xxx/public; # hugo生成的html文件夹地址

	server_name xxx.xxx.com; # 域名
	ssl on;
	ssl_certificate xxx/xxx.pem; # https申请完毕后的pem文件
	ssl_certificate_key xxx/xxx.key; # https申请完毕后的key文件

	# 其他配置项默认即可
}

要注意的几点是:

  1. 阿里云有安全配置项,务必开启http/https默认的端口。(http为80, https为443)
  2. hugo生成的文件可以通过lszrz(教程:https://www.jianshu.com/p/e6700c50fced)、scp等传输,但是建议用git仓库,本地更新完后服务器上pull一下就好了。

结语

写得比较简单,可能还有些细节可以多讲讲,再说吧哈哈。