Halo博客搭建

本文涉及的产品
.cn 域名,1个 12个月
简介: Halo博客搭建

halo博客搭建

Halo 是一款现代化的个人独立博客系统,给习惯写博客的同学多一个选择。

Halo [ˈheɪloʊ],意为光环。当然,您也可以当成拼音读(哈喽)。

一个优秀的开源博客发布应用,值得一试。


前提

具备一定的 Linux 基础。

请先保证已经正确解析域名,以及确认服务器是否需要备案。

请先确保 Halo 的运行端口已经打开。

如果您使用了类似 宝塔面板 之类的 Linux 管理面板,可能还需要在面板里放行端口。


环境要求

Linux Server(本文用的是 CentOS 7.7)

512 MB 以上内存(本文用的是 2GiB)

Nginx 或者 Caddy(本文用的是 Nginx)


部署 Halo 博客系统

参见 Halo 的官方部署文档:https://halo.run/archives/install-with-linux.html


官方部署文档写的很详细,您只需要在 SSH终端 复制粘贴命令即可完成部署,如需修改配置文件请下载 Halo 官方的公共配置文件进行修改。Halo 博客系统默认使用的是8090端口,请在安全组规则中放行8090端口(如已修改端口则放行自己修改的端口),由于接下来还要配置HTTPS,所以我们顺便放行443端口。


由于笔者使用的是 宝塔面板(自带防火墙),所以还需在 宝塔面板 上放行 8090 与 443 端口

至此,访问您的 服务器ip:8090 应该可以看到Halo博客的安装页面了!

配置域名访问

假设您已经成功配置并运行好了 Halo,且不是使用 80 端口运行

请确保域名已经成功解析到服务器 IP,并确认服务器是否需要备案。

请检查服务器的 80 和 443 端口是否开放。

如 3 所述,如果您使用了类似 宝塔面板 之类的 Linux 管理面板,可能还需要在面板里设置端口。

并不一定要求按照下列教程操作,这里仅仅以供参考。

如 2 所述,您需要做的仅仅是反向代理 Halo 运行端口,并配置 SSL 证书而已,所以并不要求配置方式。

使用 Nginx 进行反向代理

安装 Nginx


20201024183355656.png


由于笔者之前安装了 宝塔面板 ,所以直接在 宝塔面板 安装 Nginx 。


当然您也可以使用其他方式安装。


配置 Nginx


由 Nginx 的默认配置文件(nginx.conf)可看到站点配置文件公共存放路径为 /www/server/panel/vhost/nginx/ 。

20201024182601983.png

# 下载 Halo 官方的 Nginx 配置模板到上一步的 /www/server/panel/vhost/nginx/ 目录下。
# 当然您可以下载到其他目录,然后自己导入到 nginx.conf 里面。
curl -o /www/server/panel/vhost/nginx/halo.conf --create-dirs https://dl.halo.run/config/nginx.conf

下载完成之后,我们还需要对其进行修改

# 使用 vim 编辑 halo.conf
vim /www/server/panel/vhost/nginx/halo.conf

打开之后我们可以看到

server {
    listen 80;
    server_name example.com www.example.com;
    client_max_body_size 1024m;
    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/;
    }
}
server {
    listen 80;
    server_name example.com www.example.com;
    client_max_body_size 1024m;
    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/;
    }
}

注意:请把server_name后的 example.com 与 www.example.com 处改为自己的域名。

2020102418265873.png

修改完成之后

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

至此,您应该可以通过域名访问 Halo 博客了。


image.png

配置 HTTP 连接


Halo 官方文档演示的是使用 certbot 自动申请证书,笔者自己准备得有证书,所以下面将使用自己的证书进行配置。


如果您是阿里云或者其他云的服务器,基本上都可以申请到免费的一年HTTPS证书,到期了可以再次申请。


申请免费SSL证书的方式很多,请自行百度。


证书申请成功后请下载对应服务器类型的证书文件,本文使用的是 Nginx 服务器。



ec03e08925a8f5008c315658bc994661.png

下载好后解压证书文件我们会看到里面有 .key 与 .pem 后缀的两个文件。


2b023d21d320f9b2f50d2a814b56ffb7.png


我们将其证书文件通过宝塔上传至服务器的目录下面,建议在 Nginx 的根目录里创建 cert 目录(当然您也可以上传到其他目录里),然后将其文件上传到 cert 里面。


当然,如果您没有使用宝塔面板的话可以使用其他 FTP 工具进行文件上传。

# 编辑从 Halo 官方下载的 Nginx 配置模板(注意文件存放路径)
sudo vim /www/server/panel/vhost/nginx/halo.conf
## 配置http转发到https
server {
    listen 80;
    # 将demo.uanin.com改为您自己的域名
    server_name demo.uanin.com;
    # 上传文件大小的限制
  client_max_body_size 1024m;
    # 将所有http请求通过rewrite重定向到https。
    rewrite ^(.*)$ https://$host$1 permanent;
}
## 配置demo.uanin.com的ssl
server {
    listen 443 ssl;
    # 将demo.uanin.com改为您自己的域名
    server_name demo.uanin.com;
    # 上传文件大小的限制
  client_max_body_size 1024m;
    # 将证书文件存放路径和证书的密钥文件名替换成自己存放路径与证书的密钥文件名。
    ssl_certificate /www/server/nginx/cert/3977015_demo.uanin.com.pem;
    ssl_certificate_key /www/server/nginx/cert/3977015_demo.uanin.com.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_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;
        # 下面8090是您配置Halo的端口号,笔者这里使用默认端口。
        proxy_pass http://127.0.0.1:8090/;
    }
}

修改完成后

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

7f95b346f98ed3acf99d383fb184c1a6.png

此时用域名访问网站就已经成功跳转 https 了,但您会发现 css 样式没加载出来。


遇到这种情况不要慌,这是因为您设置了反向代理之后,没有去 Halo 的管理端设置正确的博客地址,造成资源获取不成功。


解决方法:将博客地址改为带 https 即可。


注意:在设置了反向代理之后,请一定记得去 Halo 的管理端设置一下正确的博客地址,否则可能会造成资源获取不成功。


再次访问就正常显示了


教程到此结束!


目录
相关文章
|
域名解析 弹性计算 安全
如何使用阿里云快速搭建个人WordPress网站博客?
如何使用阿里云快速搭建个人WordPress网站博客?使用阿里云服务器快速搭建网站教程,先为云服务器安装宝塔面板,然后在宝塔面板上新建站点,阿里云服务器网以搭建WordPress网站博客为例,来详细说下从阿里云服务器CPU内存配置选择、Web环境、域名解析到网站上线全流程:
589 0
|
JavaScript 安全 应用服务中间件
|
缓存 NoSQL 前端开发
基于Halo搭建个人网站
基于Halo搭建个人网站
基于Halo搭建个人网站
|
Shell Linux PHP
利用Halo在服务器上搭建自己的博客
参考Halo官方,使用Docker部署Halo,理由:本人大学主修Spring+vue组合,该建站博客代码底层高度与我专业契合,曾学习过利用WordPress建站,不过对于PHP语言并不太了解,故排除。
270 0
利用Halo在服务器上搭建自己的博客
|
存储 Kubernetes 关系型数据库
|
Docker 容器
试用阿里云搭建halo博客
借助docker和docker-compose搭建halo博客
481 0
试用阿里云搭建halo博客
|
7月前
|
弹性计算 Ubuntu 数据安全/隐私保护
基于Docker搭建halo博客
实例安装Ubuntu20.04系统,通过MobaXterm远程连接ECS,同时通过安装宝塔面板和部署LNMP环境,基于Docker搭建了halo博客应用。
208 0
基于Docker搭建halo博客
|
域名解析 Linux 网络安全
halo个人博客搭建
最近空闲逛社区看文档,发掘一个大佬的博客页面风格是我的理想型,于是我就在他的博客里疯狂研究,寻找线索,后来通过评论向大佬提问,最终在GitHub上找到了我钟爱的风格。于是我豪掷千金(ps:新人特惠自己猜money)买下云服务器,搭建了一个Halo博客系统,现将搭建过程记录一下。
382 0
|
域名解析 Ubuntu Java
从 0 到 1 搭建属于自己的 Halo 博客
从 0 到 1 搭建属于自己的 Halo 博客
543 0
从 0 到 1 搭建属于自己的 Halo 博客
|
存储 弹性计算 运维
阿里云服务器搭建halo博客从0到1
可能网络上已经有很多关于wordpress的建站教程,但是关于halo却很少,本文将从阿里云服务器购买(试用)到搭建一个属于开发者自己的开源博客系统,带你从0到1了解认识阿里云ECS搭建博客网站。