Halo博客搭建笔记(以Nginx反向代理 + 负载均衡 + 服务的方式运行Halo博客)

Halo [ˈheɪloʊ],一款现代化的开源博客/CMS系统,值得一试

官方网站:Halo

官方文档:Halo Documents

Github:halo-dev/halo: ✍ 一款现代化的开源博客 / CMS 系统。 (github.com)

Halo博客搭建笔记(以Nginx反向代理 + 负载均衡 + 服务的方式运行Halo博客)_第1张图片

5.1 环境准备

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

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

CentOS

# 1. 安装JDK
[root@centos ~]#sudo yum install java-11-openjdk -y

# 2. 检查版本
[root@centos ~]#java -version
openjdk version "11.0.15" 2022-04-19 LTS
OpenJDK Runtime Environment 18.9 (build 11.0.15+9-LTS)
OpenJDK 64-Bit Server VM 18.9 (build 11.0.15+9-LTS, mixed mode, sharing)

Ubuntu

# 1. 安装JDK
[rengang@ubuntu1804 ~]$sudo apt-get install openjdk-11-jre -y

# 2. 检查版本
[rengang@ubuntu1804 ~]$java -version
openjdk version "11.0.15" 2022-04-19
OpenJDK Runtime Environment (build 11.0.15+10-Ubuntu-0ubuntu0.18.04.1)
OpenJDK 64-Bit Server VM (build 11.0.15+10-Ubuntu-0ubuntu0.18.04.1, mixed mode, sharing)
5.2 安装部署

(1)创建系统用户

不推荐直接使用系统 root 用户来运行 Halo。如果需要直接使用 root 用户,请跳过这一步。

# 1. 创建halo用户(名字可以随意)
[root@centos ~]#useradd -m halo

# 2. 给予sudo权限
[root@centos ~]#usermod -aG wheel halo

# 3. 创建密码
[root@centos ~]#passwd halo

# 4. 切换到halo用户
[root@centos ~]#su - halo

(2)部署Halo

# 1. 创建存放目录
[halo@centos ~]$mkdir ~/app && cd ~/app

# 2. 下载运行包
[halo@centos app]$wget -O halo.jar https://github.com/halo-dev/halo/releases/download/v1.5.4/halo-1.5.4.jar 

# 3. 创建工作目录
[halo@centos ~]$mkdir ~/.halo && cd ~/.halo

# 4. 下载示例配置文件到 工作目录
[halo@centos .halo]$wget https://dl.halo.run/config/application-template.yaml -O ./application.yaml

# 5. 编辑配置文件,配置数据库或者端口
[halo@centos .halo]$vim application.yaml

# 6. 测试运行Halo
[halo@centos ~]$cd ~/app && java -jar halo.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!

配置文件说明:配置参考 | Halo Documents

Halo博客搭建笔记(以Nginx反向代理 + 负载均衡 + 服务的方式运行Halo博客)_第2张图片

打开 http://ip:端口号 即可看到安装引导界面

Halo博客搭建笔记(以Nginx反向代理 + 负载均衡 + 服务的方式运行Halo博客)_第3张图片

如果需要配置域名访问,建议先配置好反向代理以及域名解析再进行初始化。

如果通过 http://ip: 端口号 的形式无法访问,请到服务器厂商后台将运行的端口号添加到安全组,如果服务器使用了 Linux 面板,请检查此 Linux 面板是否有还有安全组配置,需要同样将端口号添加到安全组

5.3 服务方式运行

如下操作请退出halo账户,登录到root账户

(1)下载官方模板
[root@centos ~]#wget https://dl.halo.run/config/halo.service -O /etc/systemd/system/halo.service
(2)配置service文件
  • Halo_PATH:Halo 运行包的绝对路径,例如 /home/halo/app/halo.jar,注意:此路径不支持 ~ 符号
  • USER:运行 Halo 的系统用户,如果有按照上方教程创建新的用户来运行 Halo,修改为你创建的用户名称即可
[root@centos ~]#cat /etc/systemd/system/halo.service
[Unit]
Description=Halo Service
Documentation=https://docs.halo.run
After=network-online.target
Wants=network-online.target

[Service]
Type=simple
User=halo
ExecStart=/usr/bin/java -server -Xms256m -Xmx256m -jar /home/halo/app/halo.jar
ExecStop=/bin/kill -s QUIT $MAINPID
Restart=always
StandOutput=syslog

StandError=inherit

[Install]
WantedBy=multi-user.target

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

(3)启动Halo服务

# 1. 重新加载systemd
[root@centos ~]#systemctl daemon-reload

# 2. 运行服务
[root@centos ~]#systemctl start halo.service 

# 3. 开机自启
[root@centos ~]#systemctl enable halo.service 

# 4. 查看服务日志检查启动状态
[root@centos ~]#journalctl -n 20 -u halo

Halo博客搭建笔记(以Nginx反向代理 + 负载均衡 + 服务的方式运行Halo博客)_第4张图片

5.4 反向代理
(1)配置nginx
# 1. 安装nginx
[root@centos ~]#yum install -y nginx

# 2. 编辑配置文件
[root@centos ~]#cat /etc/nginx/conf.d/halo.conf
upstream halo {
  server 127.0.0.1:8090;
}

server {
  listen 80;
  listen [::]:80;
  server_name halo.rengang.org;
  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;
  }
}

# 3. 启动nginx
[root@centos ~]#systemctl start nginx
(2)访问测试

直接使用http://halo.rengang.org域名访问,无须添加端口信息

Halo博客搭建笔记(以Nginx反向代理 + 负载均衡 + 服务的方式运行Halo博客)_第5张图片

(3)后台管理

Halo博客搭建笔记(以Nginx反向代理 + 负载均衡 + 服务的方式运行Halo博客)_第6张图片

Halo博客搭建笔记(以Nginx反向代理 + 负载均衡 + 服务的方式运行Halo博客)_第7张图片

(4)主题修改

Halo博客搭建笔记(以Nginx反向代理 + 负载均衡 + 服务的方式运行Halo博客)_第8张图片

Halo博客搭建笔记(以Nginx反向代理 + 负载均衡 + 服务的方式运行Halo博客)_第9张图片

Halo博客搭建笔记(以Nginx反向代理 + 负载均衡 + 服务的方式运行Halo博客)_第10张图片

你可能感兴趣的:(服务部署,ubuntu,linux,服务器)