用Halo打造自己的博客网站

2024-02-29 11:30
文章标签 网站 打造 博客 halo

本文主要是介绍用Halo打造自己的博客网站,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

用Halo打造自己的博客网站

我之前分别用过Django和Hexo搭建网站,Django是python的web框架,Hexo是Node.js的,纯前端的玩意儿,配置起来相当折腾,后来我又听说了Halo不错,就尝试按官方文档部署了一套,Halo的官方文档是我见过写的最好的文档,基本照着文档就可以搞定,但还是有些细节我想在这里记录一下。

采用Next主题的网站效果截图:截图效果示意
还有其他多种主题效果,如Simple Bootstrap主题
主打简洁风格,而且功能比Next多,该主题包含以下功能:

  • 自动拆分文章目录
  • 阅读时显示进度条(可以在设置中关闭)
  • 手机端显示文章目录(可以在设置中关闭)
  • 代码可复制(可以在设置中关闭)
  • 代码支持行号(可以在设置中关闭)
  • 代码框右上角显示代码类型(可以在设置中关闭)
  • 支持转发(可以在设置中关闭)
  • 支持日志界面(部分功能暂时不可用)
  • 支持相册界面(当前为卡片式相册)
  • 链接界面分类显示

Simple Bootstrap 主题效果截图:
Simple Bootstrap主题效果

文章目录

      • 用Halo打造自己的博客网站
        • 1. 用Docker部署Halo
          • 1.1 自定义配置文件
          • 1.2 拉取并运行Halo镜像
        • 2. 配置域名访问
          • 2.1 Nginx反向代理配置
          • 2.2 配置SSL证书
        • 3. Halo的官方链接

1. 用Docker部署Halo

我是嫌麻烦,所以直接选择了最简单的Docker部署,我的京东云服务器是CentOS7.6的操作系统,具体安装Docker的步骤可以参见我写的笔记 CentOS7和8安装Docker ,安装完Docker之后,直接拉取镜像执行命令就初步OK了,具体步骤如下,

1.1 自定义配置文件

先下载配置文件

# 下载配置文件到 ~/.halo 目录
curl -o ~/.halo/application.yaml --create-dirs https://dl.halo.run/config/application-template.yaml

之后修改配置文件,将数据库改为mysql,我这里的mysql数据库也是用docker安装的,可以参考我的安装教程,Docker安装MySQL5.7和8,安装完mysql,这里的数据库halodb需要自己手动创建一下。

server:port: 8090
spring:datasource:type: com.zaxxer.hikari.HikariDataSource# H2 Database 配置,如果你需要使用 MySQL,请注释掉该配置并取消注释 MySQL 的配置。# driver-class-name: org.h2.Driver# url: jdbc:h2:file:~/.halo/db/halo# username: admin# password: 123456# MySQL 配置,如果你需要使用 H2Database,请注释掉该配置并取消注释上方 H2Database 的配置。driver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://127.0.0.1:3906/halodb?characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=trueusername: yournamepassword: yourpassword# H2 Database 的控制台相关配置,如果你使用的是 MySQL ,请注释掉下方内容。# h2:#  console:#    settings:#      web-allow-others: false#    path: /h2-console#    enabled: false#
halo:admin-path: admincache: memory
1.2 拉取并运行Halo镜像
docker pull ruibaby/halo
docker run -it -d --name halo -p 8090:8090  -v ~/.halo:/root/.halo ruibaby/halo

完成以上操作你就可以通过 ip:端口 访问了,更新版本时,你只需要拉取最新的镜像,再重新创建镜像就OK了。

# 停止容器
docker stop halo
# 拉取最新的 Halo 镜像
sudo 
# 创建容器
docker run  -it -d --name halo -p 8090:8090  -v ~/.halo:/root/.halo ruibaby/halo
2. 配置域名访问

如果你有域名,那么你还应该配置一下域名访问,具体如下:

2.1 Nginx反向代理配置

先安装Nginx

# 添加 Nginx 源
sudo rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
# 安装 Nginx
sudo yum install -y nginx
# 启动 Nginx
sudo systemctl start nginx.service
# 设置开机自启 Nginx
sudo systemctl enable nginx.service

再配置Nginx

# 下载 Halo 官方的 Nginx 配置模板
curl -o /etc/nginx/conf.d/halo.conf --create-dirs https://dl.halo.run/config/nginx.conf
# 使用 vim 编辑 halo.conf
vim /etc/nginx/conf.d/halo.conf

然后对其修改

server {listen 80;# 换成自己的域名server_name example.com www.example.com;location / {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;proxy_pass http://127.0.0.1:8090/;}
}

修改完成之后,重新加载nginx配置

# 检查配置是否有误
sudo nginx -t
# 重载 Nginx 配置
sudo nginx -s reload

之后你就可以用你的域名访问了,例如:http://www.example.com

2.2 配置SSL证书

首先,你先要从你的云服务器厂商网站上申请免费的ssl证书,并下载下来,放到你的服务器里,再配置nginx的配置文件,做个指向就OK了。

vim /etc/nginx/conf.d/halo.conf

halo.conf 配置文件内容修改如下,

server
{listen 443 ssl;server_name xxxx.com www.xxxx.com;ssl_certificate  /root/ssl/your-domain.pem;ssl_certificate_key /root/ssl/your-domain.key;ssl_session_timeout 5m;ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;ssl_protocols TLSv1 TLSv1.1 TLSv1.2;ssl_prefer_server_ciphers on;location / {proxy_buffer_size  128k;proxy_buffers   32 32k;proxy_busy_buffers_size 128k;proxy_pass http://127.0.0.1:8090;}
}
server
{listen 80;server_name xxxx.com www.xxxx.com;rewrite ^(.*)$ https://$host$1 permanent;
}

修改完成之后老规矩,继续重新加载nginx配置

# 检查配置是否有误
sudo nginx -t
# 重载 Nginx 配置
sudo nginx -s reload

完事儿之后,你就可以用https访问你的网站了。例如:https://www.example.com

3. Halo的官方链接
  • 官网:https://halo.run
  • 社区:https://bbs.halo.run
  • 主题仓库:https://halo.run/p/themes.html
  • 开源地址:https://github.com/halo-dev/halo

这篇关于用Halo打造自己的博客网站的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/758626

相关文章

基于 YOLOv5 的积水检测系统:打造高效智能的智慧城市应用

在城市发展中,积水问题日益严重,特别是在大雨过后,积水往往会影响交通甚至威胁人们的安全。通过现代计算机视觉技术,我们能够智能化地检测和识别积水区域,减少潜在危险。本文将介绍如何使用 YOLOv5 和 PyQt5 搭建一个积水检测系统,结合深度学习和直观的图形界面,为用户提供高效的解决方案。 源码地址: PyQt5+YoloV5 实现积水检测系统 预览: 项目背景

pip-tools:打造可重复、可控的 Python 开发环境,解决依赖关系,让代码更稳定

在 Python 开发中,管理依赖关系是一项繁琐且容易出错的任务。手动更新依赖版本、处理冲突、确保一致性等等,都可能让开发者感到头疼。而 pip-tools 为开发者提供了一套稳定可靠的解决方案。 什么是 pip-tools? pip-tools 是一组命令行工具,旨在简化 Python 依赖关系的管理,确保项目环境的稳定性和可重复性。它主要包含两个核心工具:pip-compile 和 pip

速盾高防cdn是怎么解决网站攻击的?

速盾高防CDN是一种基于云计算技术的网络安全解决方案,可以有效地保护网站免受各种网络攻击的威胁。它通过在全球多个节点部署服务器,将网站内容缓存到这些服务器上,并通过智能路由技术将用户的请求引导到最近的服务器上,以提供更快的访问速度和更好的网络性能。 速盾高防CDN主要采用以下几种方式来解决网站攻击: 分布式拒绝服务攻击(DDoS)防护:DDoS攻击是一种常见的网络攻击手段,攻击者通过向目标网

49个权威的网上学习资源网站

艺术与音乐 Dave Conservatoire — 一个完全免费的音乐学习网站,口号是“让每一个人都可以接受世界级的音乐教育”,有视频,有练习。 Drawspace — 如果你想学习绘画,或者提高自己的绘画技能,就来Drawspace吧。 Justin Guitar — 超过800节免费的吉他课程,有自己的app,还有电子书、DVD等实用内容。 数学,数据科学与工程 Codecad

BT天堂网站挂马事件后续:“大灰狼”远控木马分析及幕后真凶调查

9月初安全团队披露bt天堂网站挂马事件,该网站被利用IE神洞CVE-2014-6332挂马,如果用户没有打补丁或开启安全软件防护,电脑会自动下载执行大灰狼远控木马程序。 鉴于bt天堂电影下载网站访问量巨大,此次挂马事件受害者甚众,安全团队专门针对该木马进行严密监控,并对其幕后真凶进行了深入调查。 一、“大灰狼”的伪装 以下是10月30日一天内大灰狼远控的木马样本截图,可以看到该木马变种数量不

PHP抓取网站图片脚本

方法一: <?phpheader("Content-type:image/jpeg"); class download_image{function read_url($str) { $file=fopen($str,"r");$result = ''; while(!feof($file)) { $result.=fgets($file,9999); } fclose($file); re

如何打造个性化大学生线上聊天交友系统?Java SpringBoot Vue教程,2025最新设计思路

✍✍计算机编程指导师 ⭐⭐个人介绍:自己非常喜欢研究技术问题!专业做Java、Python、微信小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目:有源码或者技术上的问题欢迎在评论区一起讨论交流! ⚡⚡ Java实战 | SpringBoot/SSM Python实战项目 | Django 微信小程序/安卓实战项目 大数据实战项目 ⚡⚡文末获取源码 文章目录

使用WebP解决网站加载速度问题,这些细节你需要了解

说到网页的图片格式,大家最常想到的可能是JPEG、PNG,毕竟这些老牌格式陪伴我们这么多年。然而,近几年,有一个格式悄悄崭露头角,那就是WebP。很多人可能听说过,但到底它好在哪?你的网站或者项目是不是也应该用WebP呢?别着急,今天咱们就来好好聊聊WebP这个图片格式的前世今生,以及它值不值得你花时间去用。 为什么会有WebP? 你有没有遇到过这样的情况?网页加载特别慢,尤其是那

黑客为什么不黑赌博网站来搞米?

攻击了,只是你不知道而已! 同样,对方也不会通知你,告诉你他黑了赌博网站。 攻击赌博网站的不一定是正义的黑客,也可能是因赌博输钱而误入歧途的法外狂徒。之前看过一个警方破获的真实案件:28岁小伙因赌博无法提款自学成为黑客,攻击境外博彩网站日进万元,最终因涉嫌非法控制计算机信息系统罪被捕。 我见过很多因赌博输钱想请黑客帮忙渗透网站的人,在被拒后,同样也有人生出极端心理,问我怎么学习黑客,想学成之

提升PrestaShop外贸电商网站安全的几款行业必备工具

提升PrestaShop外贸电商网站安全的几款行业必备工具 PrestaShop发展历程 PrestaShop是一款优秀且强大的外贸开源电商软件,我们开始使用PrestaShop始于2009年,那时PrestaShop还是0.9版本:界面清新,性能强悍,扩展友好等特性,既没有Magento的笨重,也没有ZenCart的古老,更没有OpenCart的脆弱,因此PrestaShop如雨后春笋,迅速