本文讲述的是使用jar方式部署

仅对halo官方文档进行补充(我踩过的坑)

官方文档:https://docs.halo.run/getting-started/install/jar-file

1.java环境

由于halo2.21+需要JRE 21及以上

懒人一键命令总结

# 下载 JDK 21
cd /tmp
wget https://github.com/adoptium/temurin21-binaries/releases/download/jdk-21.0.4%2B7/OpenJDK21U-jdk_x64_linux_hotspot_21.0.4_7.tar.gz

# 安装到 /opt/jdk
sudo mkdir -p /opt/jdk
sudo tar -xzf OpenJDK21U-jdk_x64_linux_hotspot_21.0.4_7.tar.gz -C /opt/jdk
sudo mv /opt/jdk/jdk-21.0.4+7 /opt/jdk/jdk-21

# 设置环境变量
echo 'export JAVA_HOME=/opt/jdk/jdk-21' | sudo tee /etc/profile.d/jdk21.sh
echo 'export PATH=$JAVA_HOME/bin:$PATH' | sudo tee -a /etc/profile.d/jdk21.sh
source /etc/profile.d/jdk21.sh

也可以自行下载压缩包上传至/tmp

最后验证Java环境

# 验证
java -version

系统输出类似这样的:

openjdk version "21.0.4" 2024-07-16 LTS
OpenJDK Runtime Environment Temurin-21.0.4+7 (build 21.0.4+7-LTS)
OpenJDK 64-Bit Server VM Temurin-21.0.4+7 (build 21.0.4+7-LTS, mixed mode, sharing)

2.配置Nginx反代

!!!如有重要配置,请先行备份!!!

Halo默认后台端口是8090

编辑 Nginx 的配置文件(通常是 /etc/nginx/nginx.conf

添加以下配置

server {
    # 监听 80 端口
    listen 80;
    # example.com www.example.com替换为你的实际域名
    server_name example.com www.example.com;

    # 反向代理到本地 8090 端口
    location / {
        proxy_pass http://127.0.0.1:8090;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header X-Forwarded-Host $server_name;

        # 可选:设置超时时间
        proxy_connect_timeout 30s;
        proxy_send_timeout 30s;
        proxy_read_timeout 30s;
    }
}

保存文件后,检查 Nginx 配置是否正确:

sudo nginx -t

输出应当为类似这样的语句

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

重载 Nginx 配置

sudo nginx -s reload