用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

相关文章

打造坚固的SSH防护网:端口敲门入门指南

欢迎来到我的博客,代码的世界里,每一行都是一个故事 🎏:你只管努力,剩下的交给时间 🏠 :小破站 打造坚固的SSH防护网:端口敲门入门指南 前言什么是端口敲门端口敲门的优点1. 增强安全性2. 动态防火墙规则3. 隐匿服务4. 改善日志管理5. 灵活性和兼容性6. 低资源消耗7. 防御暴力破解和扫描8. 便于合法用户访问9. 适用于不同类型的服务 端口敲

相关网站

力扣  https://leetcode-cn.com/contest/weekly-contest-124

HTML5文旅文化旅游网站模板源码

文章目录 1.设计来源文旅宣传1.1 登录界面演示1.2 注册界面演示1.3 首页界面演示1.4 文旅之行界面演示1.5 文旅之行文章内容界面演示1.6 关于我们界面演示1.7 文旅博客界面演示1.8 文旅博客文章内容界面演示1.9 联系我们界面演示 2.效果和源码2.1 动态效果2.2 源代码2.3 源码目录 源码下载万套模板,程序开发,在线开发,在线沟通 作者:xcLeigh

个人博客文章目录索引(持续更新中...)

文章目录 一、Java基础二、Java相关三、MySql基础四、Mybatis基础及源码五、MybatisPlus基础六、Spring基础及源码七、Tomcat源码八、SpringMVC基础及源码   随着文章数量多起来,每次着急翻找半天,而是新申请的域名下来了,决定整理下最近几年的文章目录索引。(红色标记为常检索文章) 一、Java基础 1、Java基础(一):语言概述2、J

大型网站架构演化(六)——使用反向代理和CDN加速网站响应

随着网站业务不断发展,用户规模越来越大,由于中国复杂的网络环境,不同地区的用户访问网站时,速度差别也极大。有研究表明,网站访问延迟和用户流失率正相关,网站访问越慢,用户越容易失去耐心而离开。为了提供更好的用户体验,留住用户,网站需要加速网站访问速度。      主要手段:使用CDN和反向代理。如图。     使用CDN和反向代理的目的都是尽早返回数据给用户,一方面加快用户访问速

大型网站架构演化(五)——数据库读写分离

网站在使用缓存后,使绝大部分数据读操作访问都可以不通过数据库就能完成,但是仍有一部分读操作(缓存访问不命中、缓存过期)和全部的写操作需要访问数据库,在网站的用户达到一定规模后,数据库因为负载压力过大而成为网站的瓶颈。      目前豆粉的主流数据库都提供主从热备功能,通过配置两台数据库主从关系,可以将一台数据库服务器的数据更新同步到另一台服务器上。网站利用数据库的这一功能,

大型网站架构演化(四)——使用应用服务器集群改善网站的并发能力

使用集群是网站解决高并发、海量数据问题的常用手段。当一台服务器的处理能力、存储空间不足时,不要企图去更换更强大的服务器,对大型服务器而言,不管多么强大的服务器,都满足不了网站持续增长的业务需求。这种情况下,更恰当的做法是增加一台服务器分担原有服务器的访问及存储压力。 对网站架构而言,只要能通过增加一台服务器的方式改善负载压力,就可以以同样的方式持续增加服务器不断改善系统性能,从而实现系统

大型网站架构演化(二)——应用服务和数据服务分离

随着网站业务的发展,一台服务器逐渐不能满足需求:越来越多的用户访问导致性能越来越差,越来越多的数据导致存储空间不足。这时就需要将应用和数据分离。应用和数据分离后整个网站使用三台服务器:应用服务器、文件服务器和数据库服务器,如图。              这三台服务器对硬件资源的要求各不相同: 应用服务器需要处理大量的业务逻辑,因此需要更快更强大的CPU;

大型网站架构演化(一)——初始阶段的网站架构

大型网站的技术挑战主要来自于庞大的用户,高并发的访问和海量的数据,任何简单的业务一旦需要处理数以P计的数据和面对数以亿计的用户,问题就会变得很棘手。大型网站架构主要是解决这类问题。         大型网站都是从小型网站发展而来,网站架构也是一样,是从小型网站架构逐步演化而来。小型网站最开始时没有太多人访问,只需要一台服务器就绰绰有余,这时的网站架构如图所示。

做为技术人员为什么要写博客

原文链接:http://lusongsong.com/info/post/565.html