框架简介

Halo,一款现代化的开源博客/CMS系统
官方网址
屏幕截图 2022-07-16 160054

Nginx,是一个高性能的HTTP和反向代理服务器
官方网址

腾讯云服务器及域名
官方网址

建站过程

购买云服务器及域名

这方面不用多说,你要想别人可以访问到你的网站你就必须要有一个固定的公网IP,为了方便访问你也可以购买域名解析到自己的公网IP
这里本人使用腾讯云购买
腾讯云
学生优惠云服务器一年120元,域名特惠1元
(这面涉及一个问题是备案,购买域名之后需要备案才可以正常使用)

安装Halo

Halo 博客系统是Java语言开发,基于SpringBoot框架,对于大多数人来说都有对它二次开发的能力,而且Halo是一款动态博客系统,意味着可以再后台管理端在线完成自己的文档编辑,个人感觉相较于本人之前所使用过的Hexo静态博客框架来说,更为方便.

环境简述: 服务器使用CentOS 8.0

安装对应环境

Halo博客基于Java语言开发,运行时需要Java环境支持,安装JDK

sudo yum install java-17-openjdk -y

这里我选用17版本,官方文档给出的步骤为安装11版本,两者都是长期支持,各位可以自行选择

为方便操作,这里创建一个新的Linux用户用于操作Halo博客

useradd -m halo

同时还有一些用户密码及权限的配置,这方面各位可以点击官方文档观看
之后下载Halo的运行包及配置文件

wget https://dl.halo.run/release/halo-1.5.4.jar -O halo.jar
wget https://dl.halo.run/config/application-template.yaml -O ./application.yaml 

测试运行

cd ~/app && java -jar halo.jar

访问 http://ip:端口号 即可看到安装引导界面。

这里需注意,默认访问端口为8090,但云服务器的8090端口可能未开放,请检查自己的防火墙和安全组策略

将Halo配置为系统服务

下载官方配置文件

wget https://dl.halo.run/config/halo.service -O /etc/systemd/system/halo.service

修改其中对应内容
将Halo添加到系统服务中

systemctl daemon-reload
systemctl start halo
systemctl enable halo

Nginx反向代理

Nginx,是一个高性能的HTTP和反向代理服务器,这里用它来实现反向代理

安装Nginx

yum install nginx
nginx -v #使用此命令查看nginx版本

配置服务

sudo systemctl enable nginx # 设置开机启动 
sudo service nginx start # 启动 nginx 服务
sudo service nginx stop # 停止 nginx 服务
sudo service nginx restart # 重启 nginx 服务
sudo service nginx reload # 重新加载配置,一般是在修改过 nginx 配置文件时使用。

安装后访问 http://ip 就可以看到nginx的起始页,为了让nginx可以代理到我们的博客,需要修改其配置文件

upstream halo {
  server 127.0.0.1:8090;
}
server {
  listen 80;
  listen [::]:80;
  server_name www.yourdomain.com;
  client_max_body_size 1024m;
  location / {
    proxy_pass http://halo;
    proxy_set_header HOST $host;
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  }
}

到这里我们的配置就基本完成了,现在你就可以使用你的公网IP来访问到你的个人博客了.但是如果你觉得一串数字不够优雅,那你可以把自己的域名解析到自己的服务器公网IP.

屏幕截图 2022-07-16 170403

杂项

这里简单说一下我在后面的过程中遇到的一些问题

  • 首先是https在你未备案的情况下是不可以用,你这时候访问是无法连接的,需要等你的备案完成之后才能使用https访问
  • 我这面使用的主题为Anatole,本身并不带打赏功能,完善时通过向全局head标签中添加css代码实现,你可以点击左侧打赏按钮完成对我的支持

总结

屏幕截图 2022-07-16 171810
博客的搭建其实很简单,重要的是在之后完成对内容的扩充,希望我可以在之后把这里完善成我的知识星球.