框架简介
Halo,一款现代化的开源博客/CMS系统
官方网址
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.
杂项
这里简单说一下我在后面的过程中遇到的一些问题
- 首先是https在你未备案的情况下是不可以用,你这时候访问是无法连接的,需要等你的备案完成之后才能使用https访问
- 我这面使用的主题为Anatole,本身并不带打赏功能,完善时通过向全局head标签中添加css代码实现,你可以点击左侧打赏按钮完成对我的支持
总结
博客的搭建其实很简单,重要的是在之后完成对内容的扩充,希望我可以在之后把这里完善成我的知识星球.