本文讲述的是使用jar方式部署
仅对halo官方文档进行补充(我踩过的坑)
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