【教程】快速入门 halo 博客快速搭建 + nginx 配置

Linux 环境部署

本次使用系统环境 CentOS 8.0
工具TOOL: Xshell

INFO
在继续操作之前,我们推荐您先阅读《写在前面》,这可以快速帮助你了解 Halo。

依赖检查

目前运行 Halo 的最低依赖要求为 JRE 11,请务必确保在进行下面操作之前已经正确安装了 JRE。

目前介绍两种 Linux 发行版的安装方式,均为 OpenJRE,不推荐 Oracle 版本。

CentOS

sudo yum install java-11-openjdk -y

检查版本:

java -version

如果输出以下类似内容即代表成功

openjdk version "11.0.10" 2021-01-19 LTS
OpenJDK Runtime Environment 18.9 (build 11.0.10+9-LTS)
OpenJDK 64-Bit Server VM 18.9 (build 11.0.10+9-LTS, mixed mode, sharing)

安装

1.创建存放 运行包 的目录,这里以 ~/app 为例

mkdir ~/app && cd ~/app

2.下载运行包

wget https://dl.halo.run/release/halo-1.4.17.jar -O yue.jar

INFO
如果下载速度不理想,可以 下载 选择其他下载地址。

3.创建 工作目录 (PS:一定要创建这个目录)

mkdir ~/.halo && cd ~/.halo

4.下载示例配置文件到 工作目录

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

5.编辑配置文件,配置数据库或者端口等,如需配置请参考 配置

nano application.yaml

server:
  port: 8090    //默认8090

  # Response data gzip.
  compression:
    enabled: false
spring:
  datasource:

    # H2 database configuration.
    driver-class-name: org.h2.Driver
    url: jdbc:h2:file:~/.halo/db/halo
    username: root               //账号
    password: 123456               //密码

  # H2 database console configuration.
  h2:
    console:
      settings:
        web-allow-others: false
      path: /h2-console
      enabled: false

halo:

  # Your admin client path is https://your-domain/{admin-path}
  admin-path: login     //可以自定义 admin

  # memory or level
  cache: memory         //缓存方式
  

#####(PS:如果复制我的需要删除中文+// 注释 )

6.测试运行 Halo

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

7.如看到类似以下日志输出,则代表启动成功。

run.halo.app.listener.StartedListener    : Halo started at         http://127.0.0.1:8090
run.halo.app.listener.StartedListener    : Halo admin started at   http://127.0.0.1:8090/admin
run.halo.app.listener.StartedListener    : Halo has started successfully!

打开自己 浏览器输入 http://ip: 端口号 即可看到安装引导界面

INFO
如测试启动正常,请继续看作为服务运行部分,第 8 步仅仅作为测试。当你关闭 ssh 连接之后,服务会停止。你可使用 CTRL+C 停止运行测试进程。

TIP
如果需要配置域名访问,建议先配置好反向代理以及域名解析再进行初始化。如果通过 http://ip: 端口号 的形式无法访问,请到服务器厂商后台将运行的端口号添加到安全组,如果服务器使用了 Linux 面板,请检查此 Linux 面板是否有还有安全组配置,需要同样将端口号添加到安全组。

作为服务运行

  1. 下载 Halo 官方的 halo.service 模板
wget https://dl.halo.run/config/halo.service -O /etc/systemd/system/blog.service

2.修改 blog.service

vim /etc/systemd/system/blog.service

3.修改配置

YOUR_JAR_PATH:Halo 运行包的绝对路径,例如 /home/halo/app/halo.jar,注意:此路径不支持 ~ 符号。
USER:运行 Halo 的系统用户,如果有按照上方教程创建新的用户来运行 Halo,修改为你创建的用户名称即可。反之请删除 User=USER。

[Unit]
Description=Halo Service
Documentation=https://halo.run
After=network-online.target
Wants=network-online.target

[Service]
Type=simple
User=root  //注意user
ExecStart=/usr/bin/java -server -Xms256m -Xmx256m -jar /root/yue/yue.jar  //注意url
ExecStop=/bin/kill -s QUIT $MAINPID
Restart=always
StandOutput=syslog

StandError=inherit

[Install]
WantedBy=multi-user.target

TIP
请确保 /usr/bin/java 是正确无误的。建议将 ExecStart 中的命令复制出来运行一下,保证命令有效。

4.重新加载 systemd

systemctl daemon-reload

5.运行服务

systemctl start blog

6.在系统启动时启动服务

systemctl enable blog

7.您可以查看服务日志检查启动状态

systemctl status blog

反向代理

你可以在下面的反向代理软件中任选一项,我们假设你已经安装好了其中一项,并对其基本操作有一定了解。如果你对 Nginx 不熟悉,我们推荐使用 OneinStack 来管理 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 ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
    {
        proxy_pass http://halo;
        expires      30d;
        error_log /dev/null;
        access_log off;
    }
    
    location ~ .*\.(js|css)?$
    {
        proxy_pass http://halo;
        expires      12h;
        error_log /dev/null;
        access_log off; 
    }

  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;
  }
}

注意:Nginx 默认的 client_max_body_size 配置大小为 1m,可能会导致你在 Halo 后台上传文件被 Nginx 限制,所以此示例配置文件加上了 client_max_body_size 1024m; 这行配置。当然,1024m 可根据你的需要自行修改。


【教程】快速入门 halo 博客快速搭建 + nginx 配置
http://localhost:8090//archives/%E6%95%99%E7%A8%8Bhalo%E5%8D%9A%E5%AE%A2%E5%BF%AB%E9%80%9F%E6%90%AD%E5%BB%BAnginx%E9%85%8D%E7%BD%AE
作者
阅站长
发布于
2022年01月19日
许可协议